我正在进行一个简单的项目来制作数学游戏。到目前为止一切都很好,用户可以选择乘法或加法。然后接受乘法或加法求解,然后给出反馈。但我想扩展我的游戏,我想做某种计数/高分,但并不复杂,只是为了以最简单的方式给用户反馈,比如如果他们连续得到 5 个正确答案,它会在文本框中显示“恭喜你得了5分”。我不知道如何继续这个项目,只是我希望它是一个用 Tkinter 制作的 Python 数学游戏,每个正确答案都有一个计数函数。
我为此使用 Tkinter 和 Python 2.7,进一步我希望就这个项目制作一个教程以发布在 youtube 上。非常感谢所有帮助。
from Tkinter import *
import tkMessageBox
import random
import time
def fraga():
global num1
num1 = random.randint(1, 100)
global num2
num2 = random.randint(1, 100)
global svar
svar = num1 + num2
label1.config(text='Vad blir ' + str(num1) + '+' + str(num2) + '?')
entry1.focus_set()
def fraga1():
global num3
num3 = random.randint(1, 10)
global num4
num4 = random.randint(1, 10)
global svar1
svar1 = num3 * num4
label1.config(text='Vad blir ' + str(num3) + '*' + str(num4) + '?')
entry1.focus_set()
def svar1():
mainAnswer = entry1.get()
# feedback på tom ruta
if len(mainAnswer) == 0:
tkMessageBox.showwarning(message='Skriv in några nummer!')
return
if int(mainAnswer) != svar1:
tkMessageBox.showwarning(message='Tyvärr det rätta svaret: ' + str(svar1))
else:
tkMessageBox.showinfo(message='RÄTT!! :)')
def svar():
mainAnswer = entry1.get()
# feedback på tom ruta
if len(mainAnswer) == 0:
tkMessageBox.showwarning(message='Skriv in några nummer!')
return
if int(mainAnswer) != svar:
tkMessageBox.showwarning(message='Tyvärr det rätta svaret: ' + str(svar))
else:
tkMessageBox.showinfo(message='RÄTT!! :)')
def quit():
global root
root.destroy()
#fönster
root = Tk()
root.title("Andrejs mattespel Quiz")
root.geometry('700x700')
# välkomstmeddelande
label2 = Label(root, text="Hej!\n Nu ska vi lösa lite matteproblem!")
label2.config(font=('times', 18, 'bold'), fg='black', bg='white')
label2.grid(row=0, column=0)
#labels
label1 = Label(root)
label1.grid(row=2, column=0)
#start
entry1 = Entry(root)
entry1.grid(row=3, column=0)
# Omstartknappen
entry1.bind('<Return>', func=lambda e:checkAnswer())
#Knappar
fragaBtn = Button(root, text='Jag vill öva på addition!', command=fraga)
fragaBtn.grid(row=4, column=0)
svarButton = Button(root, text='Svar addition', command=svar)
svarButton.grid(row=4, column=1)
quit_bttn = Button(root, text = "Avsluta", command=quit)
quit_bttn.grid(row = 4, column = 3, sticky = W)
#Knappar multiplikation