import random
import tkinter as tk
import tkinter.ttk as ttk
ウィンドウの作成
root = tk.Tk()
root.title("ゲーム")
cv = tk.Canvas(root, width = 1000, height = 400)
cv.pack()
# 回答用のテキストボックス
entry = tk.Entry()
entry.configure(state='normal', width=20)
entry.pack()
#初期状態
def syoki():
global x
global label
x=random.randint(10000,100000)
label=tk.Label(master=root,text=x,font=("メイリオ",50,"normal"))
画面を描画する関数
def draw_objects():
cv.delete('all') # 既存の描画を破き
#数字を動かす関数
def move(i):
i+=2
label.place(x=i,y=150)
label.after(2,lambda: move(i))
#正解の表示する(OKを押した時)関数
def click1():
word = int(entry.get())
entry.delete(0, tk.END)
if(x==word):
m="正解"
else:
m="不正解"
global message
message = tk.Message(root, text=m,font=("",50))
message.pack()
#quitを押した時の関数
def click2():
quit()
#once againを押した時の関数
def click3():
message.pack_forget()
move(0)
#resetを押した時の関数
def click4():
message.pack_forget()
syoki()
move(0)
ゲームループの関数
def game_loop():
draw_objects()
root.after(1500, game_loop)
#ボタンの定義
button1 = tk.Button(root, text='OK', command=click1)
button1.place(x=600, y=405)
button2 = tk.Button(root, text='quit', command=click2)
button2.place(x=640, y=460)
button3 = tk.Button(root, text='once again', command=click3)
button3.place(x=300, y=460)
button4 = tk.Button(root, text='reset', command=click4)
button4.place(x=700, y=460)
#ゲームの開始
syoki();
move(0)
game_loop()
root.mainloop() # ゲームウィンドウを表示
#このプログラムの問題点
このプログラムは数字が左から流れてきて、それを当てるゲームを想定しています。うまくいっていない部分は、リセットボタンともう一度ボタンの動きがおかしいところです。最終的には、このボタンを押すと、新しい数字が出てくるか、もう一度同じ数字が出てくるようにしたいです。しかし、実際は数字が全く出てこず、止まってしまいます。このプログラムを手直ししてもらえると助かります。
大学の課題で作成中のプログラムになります。pythonは全くの初心者なので、プログラムの書き方がおかしい箇所もありますが、そのあたりは大目に見てもらえるとありがたいです。