分析:
玩家输入一个数字,与系统产生的随机数时行比对,根据比对输入结果,如果想等显示“恭喜你猜对了!”,如果玩家数字比系统数字大则显示“你猜大了,再试一次吧!”,如果玩家数字比系统数字小,则显示“你猜小了,再试一次吧!”
I:玩家输入数字,用Entry控件来完成
P:用Message控件来显示比对结果。“恭喜你猜对了!”“你猜大了,再试一次吧!”“你猜小了,再试一次吧!”
O:设置一个Button用来绑定函数judge(),用来进行玩家输入数字与系统产生的随机数的对比,用while循环实现猜到为止的游戏玩法。
变量和方法:
guess 玩家输入的数字
answer 随机产生的数字
ms Message绑定的变量,用于显示结果
e Entry绑定的变量
label_1 显示标题“猜数字游戏”,Label 控件
label_2 用于提示玩家输入数字的规则,Label 控件
entry 用于让玩家输入数字,Entry 控件
button 用于玩家输入数字后点击运行judge()函数,Button 控件
message 用于显示比对结果,Message 控件
算法:
- 导入 tkinter random 库
- 变量声明
- 自定义函数 clear, 用于清空 Entry 和 Message
- 自定义函数 judge, 用于进行猜数字的比对
- label_1, 显示游戏标题
- label_2,显示提示玩家规则
- entry, 用于玩家输入数字
- button ,用于执行游戏进行判断
- message ,用于显示结果
代码:
from tkinter import *
import random
root = Tk()
root.geometry("300x200")
root.title('猜数字游戏')
#变量声明
guess= IntVar()
answer = IntVar()
ms = StringVar()
e = IntVar()
#随机产生一个答案
answer = random.randint(0,100)
#请空数字和结果
def clear(event):
entry.delete(0,'end')
ms.set('')
# 判断猜数结果
def judge():
guess = int(e.get())
if 0<=guess<=100:
if guess == answer:
ms.set('恭喜你猜对了!')
elif guess > answer:
ms.set('你猜大了,再试一次吧!')
else:
ms.set('你猜小了,再试一次吧!')
else:
ms.set('请输入0-100之间的整数')
#窗体控件
label_1 = Label(root,text='猜数字游戏',font=("隶书",20))
label_1.pack(pady=5)
label_2 =Label(root,text='请输入0-100之间的整数')
label_2.pack(pady=5)
entry = Entry(root,textvariable=e)
entry.delete(0)
entry.pack(pady=5)
entry.bind('<Button-1>',clear)
button=Button(root,text='猜一猜',command=judge)
button.pack(pady=5)
message = Message(root,textvariable=ms,width=200)
message.pack(pady=5)
mainloop()
效果图:
网友评论