以下のサイトを参考に、おみくじゲームをつくってみました。
https://original-game.com/how-to-make-a-fortune-game-in-python/
実装したコード
https://drive.google.com/file/d/1TJE6e-6MMiCfYlAYLVHAIPU28MBR15RY/view?usp=sharing
今回の難所
LIne27
canvas.create_text(400,70,text=results[rnd], font = ('MS 明朝',100),fill = '#ffffff',tags='text')
内容:キャンバスにの要素をリスト型変数Resultsのランダムに生成した数字の、インデックス番号を表示する。
ポイント:スライスするインデックス番号を変数にすること
活用:
献立をランダムに一つ選ぶ(近日中に作成予定)
global shaking_omikuji
Line30
内容:グローバル変数の値を更新できるようにする
ポイント:グローバル変数の意味を理解する
活用:
a = 10
def calc():
global a
a = 5
print(a)
calc()
print(a)
出力結果:
5
5
global変数とすることで、関数の中でのa=5が、関数の外でもa=5が適応するようになった。(←説明下手・・・)
Line59
canvas.tag_bind('omikuji','<ButtonRelease-1>',click_event)
内容:おみくじの画像がクリックされたら、Click_event関数を呼び出す
ポイント:catnvas.tag_bindメソッドの使い方
活用:
import tkinter
def change_color(event):
event.widget.itemconfig(
'rect_l',
fill = 'blue'
)
app = tkinter.Tk()
canvas = tkinter.Canvas(
app,
width=400,
height=300,
)
canvas.pack()
canvas.create_rectangle(
50,50,300,250,
fill = 'red',
tag = 'rect_l'
)
canvas.tag_bind(
'rect_l',
'<ButtonPress>',
change_color
)
app.mainloop()
内容:キャンバスにある赤の四角をクリックすると、四角が青色に変化する。
クリック・・・
まとめ
とても基本的なゲームだが、画像・文字・動きが実装されていて、ゲームっぽいなと感じる作品だった。まだまだクラス、メソッド、関数は、お手本を見て、内容を理解するのが精いっぱいで自分では使いこなせていない。だが、少しずつdefやglobalという文言、インデントがたくさんあるコードを見ても、即座にお手上げというわけではなくなってきたので、手を動かして使っていくしかない。