要求:设计一个有 GUI 界面的猜单词游戏。用列表来存放单词(列表中至少有 20 个单词, 且每个单词包含的字母个数应大于 5 个),由计算机随机产生一个单词,打乱字母顺序,供 玩家去猜,给出所用时间。界面可参考以下界面:
时间: 2023-12-17 10:05:00 浏览: 200
猜单词游戏
好的,我可以帮您完成这个任务。首先,我们需要用 Python 编写一个控制台版本的猜单词游戏,确保逻辑正确。然后,我们可以使用 Tkinter 或 PyQt 等 GUI 工具包来创建一个界面,将游戏嵌入其中。
以下是一个简单的 Python 控制台版本的猜单词游戏示例代码:
```python
import random
import time
# 定义单词列表
words = ['apple', 'banana', 'cherry', 'durian', 'elderberry', 'fig', 'grape', 'honeydew', 'kiwi', 'lemon', 'mango', 'nectarine', 'orange', 'peach', 'quince', 'raspberry', 'strawberry', 'tangerine', 'ugli fruit', 'watermelon']
# 从单词列表中随机选取一个单词
word = random.choice(words)
# 打乱单词的字母顺序
shuffled_word = ''.join(random.sample(word, len(word)))
# 记录开始时间
start_time = time.time()
# 循环猜单词,直到猜对为止
while True:
# 打印打乱顺序后的单词
print('Shuffled word:', shuffled_word)
# 获取用户输入
guess = input('Guess the word: ')
# 判断用户是否猜对了
if guess == word:
print('Congratulations! You guessed the word.')
break
else:
print('Sorry, try again.')
# 计算用时
end_time = time.time()
time_taken = end_time - start_time
print('Time taken:', time_taken, 'seconds')
```
现在,我们可以使用 Tkinter 来创建一个 GUI 界面,并将猜单词游戏嵌入其中。以下是一个简单的 Tkinter 界面示例代码:
```python
import random
import time
import tkinter as tk
# 定义单词列表
words = ['apple', 'banana', 'cherry', 'durian', 'elderberry', 'fig', 'grape', 'honeydew', 'kiwi', 'lemon', 'mango', 'nectarine', 'orange', 'peach', 'quince', 'raspberry', 'strawberry', 'tangerine', 'ugli fruit', 'watermelon']
# 从单词列表中随机选取一个单词
word = random.choice(words)
# 打乱单词的字母顺序
shuffled_word = ''.join(random.sample(word, len(word)))
# 记录开始时间
start_time = time.time()
# 创建 Tkinter 界面
window = tk.Tk()
window.title('Guess the Word Game')
# 添加游戏界面元素
tk.Label(window, text='Shuffled word:').grid(row=0, column=0)
shuffled_word_label = tk.Label(window, text=shuffled_word)
shuffled_word_label.grid(row=0, column=1)
tk.Label(window, text='Your guess:').grid(row=1, column=0)
guess_entry = tk.Entry(window)
guess_entry.grid(row=1, column=1)
result_label = tk.Label(window, text='')
result_label.grid(row=2, column=1)
# 定义猜单词函数
def guess_word():
# 获取用户输入
guess = guess_entry.get()
# 判断用户是否猜对了
if guess == word:
result_label.config(text='Congratulations! You guessed the word.')
# 计算用时
end_time = time.time()
time_taken = end_time - start_time
tk.Label(window, text='Time taken: ' + str(time_taken) + ' seconds').grid(row=3, column=0)
# 禁用猜单词按钮和输入框
guess_button.config(state=tk.DISABLED)
guess_entry.config(state=tk.DISABLED)
else:
result_label.config(text='Sorry, try again.')
# 添加猜单词按钮
guess_button = tk.Button(window, text='Guess', command=guess_word)
guess_button.grid(row=2, column=0)
window.mainloop()
```
这个示例代码创建了一个简单的 Tkinter 界面,包括一个打乱顺序后的单词标签、一个用户输入框、一个猜单词按钮和一个结果标签。当用户点击猜单词按钮时,程序会调用 guess_word 函数来判断用户是否猜对了单词,并在结果标签中显示相应的信息。如果用户猜对了单词,程序会计算用时并在界面上显示出来,同时禁用猜单词按钮和输入框。
阅读全文