ぺーぱーの日々

上機嫌でいること、夢中でいることを目標に、今日も色んなことに手を出します。

MENU

おみくじゲームをつくってみた。

以下のサイトを参考に、おみくじゲームをつくってみました。

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)

出力結果:

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という文言、インデントがたくさんあるコードを見ても、即座にお手上げというわけではなくなってきたので、手を動かして使っていくしかない。