用GUI和线程实现一个打字小游戏,程序每隔一段时间随机给出一个汉字,玩家在输入框内输入正确即得分
时间: 2024-03-24 14:36:42 浏览: 55
好的,我可以为您提供一份基本的代码框架,您可以根据您的需求进行修改和完善:
```python
import tkinter as tk
import threading
import time
import random
class TypingGame:
def __init__(self, time_interval):
self.time_interval = time_interval
self.root = tk.Tk()
self.root.title("打字小游戏")
self.score = 0
self.chinese_list = ['中', '国', '人', '民', '共', '和', '国', '万', '岁']
self.current_chinese = ''
self.score_label = tk.Label(self.root, text="得分: {}".format(self.score))
self.score_label.pack()
self.chinese_label = tk.Label(self.root, text="请在下方输入框内输入汉字")
self.chinese_label.pack()
self.input_entry = tk.Entry(self.root)
self.input_entry.pack()
self.start_button = tk.Button(self.root, text="开始游戏", command=self.start_game)
self.start_button.pack()
self.root.mainloop()
def start_game(self):
self.start_button.configure(state='disable')
self.input_entry.configure(state='normal')
self.input_entry.focus()
self.current_chinese = random.choice(self.chinese_list)
self.chinese_label.configure(text=self.current_chinese)
self.thread = threading.Thread(target=self.timer)
self.thread.start()
def timer(self):
time_left = self.time_interval
while time_left >= 0:
time.sleep(1)
time_left -= 1
if time_left == 0:
self.game_over()
break
def game_over(self):
self.start_button.configure(state='normal')
self.input_entry.configure(state='disable')
self.input_entry.delete(0, 'end')
self.score_label.configure(text="得分: {}".format(self.score))
self.chinese_label.configure(text="游戏结束")
def check_input(self):
if self.input_entry.get() == self.current_chinese:
self.score += 1
self.score_label.configure(text="得分: {}".format(self.score))
self.current_chinese = random.choice(self.chinese_list)
self.chinese_label.configure(text=self.current_chinese)
self.input_entry.delete(0, 'end')
self.input_entry.focus()
if __name__ == '__main__':
TypingGame(15) # 15秒为每个汉字出现的时间间隔
```
这段代码使用了Python的GUI库`tkinter`和`threading`模块,实现了一个简单的打字小游戏。在游戏开始后,程序会随机从汉字列表中选择一个汉字,显示在游戏窗口中央的标签中,同时启动一个计时器线程,计时器线程会在一定时间后结束游戏。玩家需要在下方的输入框中输入正确的汉字,输入正确后得分加1,程序会再次随机选择一个汉字进行下一轮游戏。
您可以根据您的需求对代码进行修改和完善,比如增加更多的汉字,改变汉字出现的时间间隔,设计更丰富的界面等。
阅读全文