栄達の神は待たない

とある大学生が自らの技術力の向上と知識を得るモチベーションUPのための自己満ブログ。

WordCloudで遊んでみる

簡単な動機

プログラムでなんかエモい感じのものを作りたくなったから。

暇つぶし。

WordCloudとは

ワードクラウド(WordCloud)

文章中で出現頻度が高い単語を複数選び出し、その頻度に応じた大きさで図示する手法。

コトバンクより

こういうことができるらしい

私が見たものは、赤ずきんちゃんのワードクラウドだったかな

一目惚れして作り方調べたら、Pythonのパッケージがあったから " やってみよう "ってなった

てことで準備する!

環境

windows 10

Python 3.7

wordcloud 1.6.0

今回はPythonでWordCloudをする

WordCloud 公式 https://amueller.github.io/word_cloud/

WordCLoudのインストール

コマンドプロンプトで入力

pip install wordcloud

準備完了

はやっwww

サンプルを動かす

サンプルコード (公式にあるやつ)

import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud

text = "square"

x, y = np.ogrid[:300, :300]

mask = (x - 150) ** 2 + (y - 150) ** 2 > 130 ** 2
mask = 255 * mask.astype(int)


wc = WordCloud(background_color="white", repeat=True, mask=mask)
wc.generate(text)

plt.axis("off")
plt.imshow(wc, interpolation="bilinear")
plt.show()
実行結果

f:id:utageer:20191223092455p:plain
wordcloudサンプル実行結果

DEKITA !!!

次回はオリジナルのをつくってみるよ

2月15日までの進捗

GrowSlime計画 途中経過

f:id:utageer:20190216144130p:plain
Summon画面
f:id:utageer:20190216144132p:plain
Main画面
f:id:utageer:20190216144134p:plain
Main画面(レベルアップ後)

ひとまず、スライムを生成し、トレーニングでレベルを上げ、ステータスを上昇させることができるようになりました。

今後改善すべきこと

とにかくコードが汚い。でも汚いだろうということが分かっても、どうすれば綺麗になるかわからないので放置。

Summon画面

中心をうまく使い、名前の入力範囲を大きくし、入力しやすくする。

Main画面
  • フォントが気持ち悪いので、いい感じのフォントを見つける。

  • ステータスの隣にCanvasを配置し、スライムの画像を載せる。

  • PlayとSleepに機能が実装されていないので、実装する。

  • Traning実行時になにかしらトレーニングしていることを表す演出を実装する。     

  • スタンドアローンでの実行が可能か調べ、可能ならば実装する。

2月10,11日の進捗

2月10日。 天気:はれ 気温:寒め 湿度:知らん

スライム...すらいむ...スライムをつくりたい!

ってことでスライムを作ることにしました。

すらいむ育成計画

作るといってもリアルに魔物を生成することはできません。 なので、某「たま〇っち」のような育成ゲームを作り、そこでスライムを育てたいと思います。

うまくできれば、これを発展させて遺伝子的なのをイジイジして強化したり、ダンジョン生成して勇者と戦わせたりしてみたいなって思います。

計画書 第1弾

ゲーム名:GrowSlime 言語:Python(クラスの勉強も兼ねて、オブジェクト指向

ファイルは3つ。

  1. growSlime.py(main。ゲームを進行させる。)

  2. slime.py(スライムの生成、成長などスライム全般を管理する。)

  3. silmeData.xls(スライムの個体情報を記録する、Excelファイル)

スライムにはステータスとクラス(ロール)の概念を持たせる (のちにスキルみたいなのも実装したい)

スライムのステータス

  • Level
  • HP
  • MP
  • STR
  • VIT
  • DEX
  • INT
  • AGI

GrowSlimeのゲーム画面

f:id:utageer:20190212084954p:plain
GrowSlime 画面構成(案)

現在の状況(途中経過)

from random import *

class Slime:
    def __init__(self, name):
        self.name = name
        self.level = 1
        self.hp = 1
        self.mp = 0
        self.status = [0, 0, 0, 0, 0]
        #level
        #hp
        #mp
        #status (str, vit, dex, int, agi)

    def status_init(self):
        self.status = [ randint(1,10),
                        randint(1,10),
                        randint(1,10),
                        randint(1,10),
                        randint(1,10)
                        ]

    def level_up(self, grow_table):
        if grow_table == "dps":
            self.status[0] += 3
            self.status[1] += 2
            self.status[2] += 1
            self.status[3] += 1
            self.status[4] += 1
        elif grow_table == "tank":
            self.status[0] += 1
            self.status[1] += 4
            self.status[2] += 1
            self.status[3] += 1
            self.status[4] += 1
        elif grow_table == "healer":
            self.status[0] += 1
            self.status[1] += 1
            self.status[2] += 1
            self.status[3] += 3
            self.status[4] += 2

slime = []
for i in range(5):
    slime.append(Slime("sli" + str(i)))
    slime[i].status_init()
    print(slime[i].status)
slime_class = input("Select class!")
print(slime_class)
slime[0].level_up(slime_class)
for i in range(5):
    print(slime[i].status)


slime1 = Slime("Jhon")
slime1.status_init()
print(slime1.status)
slime1.level_up()
print(slime1.status)

2月9日までの進捗

2月5日からグランドサマナーズ(以下グラサマ)というゲームにはまっていました。

グラサマでは現在、転スラコラボがやっていてリムル、ベニマル、ミリムが手に入るということで寝る間も惜しんで一心不乱にクエスト周回していました。

結果的に多くのキャラ育成とリムル ver.スライムをラック120にできました!

おそらく今後も続けると思うので、グラサマについても進捗を挙げたいと思います。

この4日間やっていたのはゲームだけではありません。

PythonGUIを使うことができるtkinterについて勉強していました。

成果としてじゃんけんゲームを作ってみました。

せっかくなので成果物をGithubにあげてみようと思い、Githubを始めてみました!

https://github.com/utageer/game01.git

本日は以上!

2月4日の進捗

今日はWeb系の勉強ではなく、Pythonの勉強をしていました。

具体的には、Tkinterを使ったGUIアプリケーションの作成を勉強していました。

とりあえず、ある程度リファレンスを読み込んだので、試しに〇✖ゲームでも作ってみようって感じです。

現状、Buttonで苦戦していて全く形になっていないので明日は形ができるように頑張りたいと思います。

2月3日の進捗

今日は朝から美容室に行ってから、買い物してきました。

そこで前々から気になっていた本を2冊購入しました。

この2冊です。

f:id:utageer:20190203230148j:plain

積み本にならないようにしっかり読みたいと思います。

今日の進捗

「HTML&CSS 初級編」2週目完了しました。

HTMLタグや、CSSのコマンド?も結構覚えてきたので明日は試しにWebページを作ってみたいと思います。

今日、Progateをしていたら妹が「ゲームつくってよ」と行ってきたので息抜きに何か作ってみたいと思います。

2月2日の進捗

どうでもいいですが、今日は実家へ帰省しました。

電車から見る景色は大きなジオラマを見ているようで不思議な感覚を覚えました。

もしかしたら、この世界は誰かが作ったジオラマなのかも?

 今日の進捗

「HTML&CSS 中級編」を2つ進めました。

残念ながらこの先は有料プランということで、後日改めて進めたいと思います。

代わりに、「HTML&CSS 初級編」を復習していました。

明日は朝から美容院に行ってきます。