小游戏"/>
python+gui实现一个猜数字的小游戏
设计思路:
使用python中的tkinter实现窗口猜数字小游戏
具体代码如下:
import tkinter as tk
from tkinter import messagebox
import randomclass GuiClass:root = tk.Tk(className="猜数字小游戏") # 初始化窗口label = tk.Label(root, text="请输入0到1024之间的整数") # 定义标签,从属于窗口text_default = tk.IntVar(value='') # 定义变量,默认值为空input = tk.Entry(root, width=30, textvariable=text_default) # 定义输入框,从属于窗口ok_btn = tk.Button(root, width=10, text='确认', background='lightblue') # 定义确认按钮cel_btn = tk.Button(root, width=10, text='取消', background='lightblue') # 定义取消按钮anw_btn = tk.Button(root, width=10, text='查看答案', background='lightblue') # 定义查看答案按钮num = random.randint(0, 1024) # 产生一个随机数,在0-1024之间print(num)"""创建一个显示窗口的方法"""def shou_win(self):"""获取屏幕宽高,使窗口居中"""sw = self.root.winfo_screenwidth()sh = self.root.winfo_screenheight()ww = 430wh = 160x = (sw-ww)/2y = (sh-wh)/2self.root.geometry('%dx%d+%d+%d' % (ww, wh, x, y))"""通过grid布局管理器进行布局"""self.label.grid(row=0, column=0, sticky='E', pady=5)self.input.grid(row=0, column=1, columnspan=2, pady=5)self.input.focus()# 点击确认按钮,进行猜数字, 注意,command对应执行的方法不要带括号,否则初始化的时候会执行self.ok_btn = tk.Button(self.root, width=10, text='确认', background='lightblue', command=self.guess)# 点击取消按钮,退出游戏self.cel_btn = tk.Button(self.root, width=10, text='取消', background='lightblue', command=self.exit)# 点击查看答案按钮,查看答案self.anw_btn = tk.Button(self.root, width=10, text='查看答案', background='lightblue', command=self.answer)self.ok_btn.grid(row=1, column=0, sticky='W', pady=5)self.cel_btn.grid(row=1, column=1, sticky='W', pady=5)self.anw_btn.grid(row=1, column=2, sticky='W', pady=5)def guess(self):"""猜数字"""if not self.input.get(): # 判断,如果没有获取到内容,则提示未输入messagebox.showerror("错误", "未输入数字!!!")else:gn = self.input.get() # 获取输入内容while gn.isdigit(): # gn的值全是数字组成gn1 = int(gn) # 转为整型if 0 <= gn1 <= 1024: # 如果值在0-1024之间if gn1 == self.num:messagebox.showinfo("结果", "恭喜你,猜对啦!")self.root.quit()breakelif gn1 < self.num:messagebox.showinfo("结果", "猜小了哦")breakelse:messagebox.showinfo("结果", "猜大了哦")breakelse: # 如果值不在0-1024之间,提示messagebox.showerror("错误", "不在区间范围内,请输入0-1024之间的数字")breakelse: # 如果不是全部由数字组成messagebox.showerror("错误", "请输入整数!")return Nonedef exit(self):"""退出"""self.root.quit()def answer(self):"""查看答案"""messagebox.showinfo("答案", self.num)self.root.quit()if __name__ == '__main__':g = GuiClass()g.shou_win()g.root.mainloop()
更多推荐
python+gui实现一个猜数字的小游戏
发布评论