代码的一般思想是,每隔一秒半,按钮上的文本就会随机变化,因此每个按钮都会读到"点击"、"咔嚓"或"咯咯"声。 如果玩家点击标有"点击"的按钮,他或她将获得 10 分。 如果玩家点击标有"咔嚓"或"咯咯"的按钮,他或她将失去 10 分。 单击按钮后,它会改变颜色 - 如果单击得分,则变为浅绿色,如果失去分数,则变为浅黄色。 再次单击同一按钮在下次更改按钮标签之前不起作用,此时颜色也应恢复为灰色。
我遇到的问题是修改代码,以便每次玩家得分 10 分时,标签更改之间的间隔减少 50 毫秒,每次玩家损失 10 分时,间隔增加 100 毫秒。
这是原始代码,但我不知道如何修改间隔的代码。
from tkinter import *
import random
score = 0
root = Tk()
scoreFrame = Frame(root)
scoreFrame.pack(expand=YES, fill=BOTH)
scoreLabel = Label(scoreFrame)
scoreLabel.pack(expand=YES)
def showScore():
scoreLabel['text'] = 'Score: {0}'.format(score)
clickFrame = Frame(root)
clickFrame.pack(side=BOTTOM, expand=YES, fill=BOTH)
def changeLabels():
for button in buttons:
button['text'] = random.choice(['click', 'clack', 'cluck'])
button['bg'] = buttonDefaultColor
root.after(1500, changeLabels)
def makeButton():
button = Button(clickFrame)
def cmd():
global score
if button['bg'] == buttonDefaultColor:
if button['text'] == 'click':
score += 10
button['bg'] = 'light green'
else:
score -= 10
button['bg'] = 'light yellow'
showScore()
button['command'] = cmd
button.pack(side=LEFT, expand=YES, fill=BOTH)
return button
buttons = [makeButton() for i in range(5)]
buttonDefaultColor = buttons[0]['bg']
changeLabels()
showScore()
您需要将 1500 更改为全局值或类属性。 可以更新的东西。