.使用python标准库tkinter编写GUI版本的猜数游戏,每次猜数之前要启动游戏并设置猜数范围和最大猜测次数等参数,退出游戏时显示战绩(共玩几次,猜对几次)信息
时间: 2024-02-20 19:59:15 浏览: 133
python 使用tkinter 实现一个猜数字游戏
5星 · 资源好评率100%
好的,这是一个比较简单的项目,我可以帮你实现。首先,我们需要导入tkinter库,以及其他需要用到的库,比如random库。然后,我们可以创建一个GUI窗口,里面包含设置参数的选项框、开始游戏和退出游戏按钮等。
具体实现如下:
```python
import tkinter as tk
import random
class GuessNumberGame:
def __init__(self, master):
self.master = master
self.master.title('猜数游戏')
self.master.geometry('300x200')
self.master.resizable(False, False)
self.number = 0
self.count = 0
self.max_count = 0
self.played = 0
self.win = 0
self.number_label = tk.Label(self.master, text='数值范围:')
self.number_label.grid(row=0, column=0)
self.number_entry = tk.Entry(self.master, width=10)
self.number_entry.grid(row=0, column=1)
self.count_label = tk.Label(self.master, text='最大猜测次数:')
self.count_label.grid(row=1, column=0)
self.count_entry = tk.Entry(self.master, width=10)
self.count_entry.grid(row=1, column=1)
self.max_count_label = tk.Label(self.master, text='猜数次数:')
self.max_count_label.grid(row=2, column=0)
self.max_count_entry = tk.Entry(self.master, width=10)
self.max_count_entry.grid(row=2, column=1)
self.start_button = tk.Button(self.master, text='开始游戏', command=self.start_game)
self.start_button.grid(row=3, column=0, padx=20, pady=10)
self.quit_button = tk.Button(self.master, text='退出游戏', command=self.quit_game)
self.quit_button.grid(row=3, column=1, padx=20, pady=10)
self.result_label = tk.Label(self.master, text='')
self.result_label.grid(row=4, column=0, columnspan=2)
def start_game(self):
try:
self.number = int(self.number_entry.get())
self.count = 0
self.max_count = int(self.max_count_entry.get())
self.played += 1
self.result_label.config(text='')
self.guess_number()
except ValueError:
self.result_label.config(text='数值范围和猜测次数必须是整数!')
def guess_number(self):
self.count += 1
if self.count > self.max_count:
self.result_label.config(text='很遗憾,你没有猜中!')
return
guess = int(input('请输入你猜的数字:'))
if guess == self.number:
self.result_label.config(text='恭喜你猜中了!')
self.win += 1
return
elif guess < self.number:
self.result_label.config(text='猜小了!')
else:
self.result_label.config(text='猜大了!')
self.master.after(1000, self.guess_number)
def quit_game(self):
self.result_label.config(text='共玩了{}次,猜对了{}次。'.format(self.played, self.win))
self.master.after(1000, self.master.quit)
if __name__ == '__main__':
root = tk.Tk()
app = GuessNumberGame(root)
root.mainloop()
```
这个程序实现了一个简单的猜数游戏,用户可以通过GUI界面设置数值范围、最大猜测次数和猜数次数等参数,并且可以开始游戏和退出游戏。在游戏过程中,用户需要猜测一个随机生成的数字,如果猜中了就会提示成功,否则会提示猜大了或者猜小了。最后,程序会显示本次游戏的战绩,包括游戏次数和猜中次数等信息。
阅读全文