簡単な数学ゲームにタイマーを追加しようとしています。これまでのところ、すべてがうまく機能しており、ボタンを押すとユーザーに質問が表示され、回答に対するフィードバックが提供されます。ユーザーが乗算に答えるのにかかる時間を確認するためのタイマーを追加したいと考えています。これは、この数学ゲームのプロトタイプの最後の部分です。ユーザーがスウェーデン語で新しい番号を意味する「nytt tal」をクリックするとタイマーが開始し、ユーザーがスウェーデン語で回答を意味する「svar」をクリックするとタイマーが停止するようにします。これが私のコードです。
Tkinterインポートから *
インポート tkMessageBox
インポートランダム
輸入時間
システムをインポート
# ユーザーへの質問の定義
デフfraga1():
グローバル num3
num3 = ランダム.randint(1, 10)
グローバル num4
num4 = ランダム.randint(1, 10)
グローバル svar1
svar1 = num3 * num4
label1.config(text='Vad blir' + str(num3) + '*' + str(num4) + '?')
entry1.focus_set()
#回答に基づいてフィードバックを提供する回答
デフ svar1():
mainAnswer = entry1.get()
len(mainAnswer) == 0 の場合:
tkMessageBox.showwarning(message='Skriv in några nummer!')
戻る
int(mainAnswer) != svar1 の場合:
tkMessageBox.showwarning(message='Tyvärr det rätta svaret: ' + str(svar1))
そうしないと:
tkMessageBox.showinfo(message='RÄTT!! :)')
#終了ボタンの定義
デフ終了():
グローバルルート
root.destroy()
#この部分が動かないタイマーの定義
デフォルト開始():
グローバル count_flag
フラガ1()
count_flag = True
カウント = 0.0
True の間:
count_flag == False の場合:
壊す
ラベル['テキスト'] = str(カウント)
時間.スリープ(0.1)
root.update()
カウント += 0.1
#ウィンドウコード
ルート = Tk()
root.title("乗算 tidtagning")
root.geometry('800x500')
count_flag = True
# ラベルのウェルカム メッセージ
label2 = Label(root, text="Hej!\n Nu ska vi lösa lite マットの問題!")
label2.config(font=('times', 18, 'bold'), fg='black', bg='white')
label2.grid(行=0、列=0)
#ラベルでの遊び方の説明
label3 = Label(root, text="Instruktioner!\n For att starta ett spel tryck på nyttspel")
label3.config(font=('times', 12, 'bold'), fg='black', bg='white')
label3.grid(行=2、列=2)
#その他のレーベル
label1 = ラベル (ルート)
label1.grid(行=2、列=0)
# スタートボタンのエントリーウィジェット
entry1 = エントリ (ルート)
entry1.grid(行=3、列=0)
# 再起動すると新しい質問が表示されます
entry1.bind('', func=lambda e:checkAnswer())
#ボタン
fragaBtn = Button(root, text='Nytt tal', command=fraga1)
fragaBtn.grid(行=4、列=0)
svarButton = Button(root, text='Svar', command=svar1)
svarButton.grid(行=4、列=1)
quit_bttn = Button(root, text = "Avsluta", command=quit)
quit_bttn.grid(行=5、列=0)
root.mainloop()