|
发表于 2019-7-26 21:41:53
|
显示全部楼层
本帖最后由 一个账号 于 2019-7-26 21:43 编辑
我自己也编了一个:
- from tkinter import *
- import random
- def check(content):
- return content.isdigit()
- def regulation(event=None):
- root = Tk(className="规则")
- test = "规则:输入一个1~1000的数字,如果用户输入的数字和计算机从1~1000之内的随机数相符,并且尝试次数要小于20次,则游戏胜利,否则游戏失败。"
- Message(root, text=test, font=("微软雅黑", 12)).pack(padx=5, pady=5)
- def exit(event=None):
- root.destroy()
- def num_guess():
- if degree <= 5 :
- l.config(text="5次以内就答对了!你的运气很高!")
- elif degree <= 10:
- l.config(text="10次以内就答对了,你的运气较高!")
- elif degree <= 15:
- l.config(text="15次以内就答对了,你的运气中等!")
- elif degree <=20:
- l.config(text="20次以内能答对,你的运气较低!")
- else:
- l.config(text="尝试次数超过20次,游戏结束!")
- def yes(event=None):
- global degree
- error = False
- try_number = var2.get()
- if int(try_number) == number:
- num_guess()
- else:
- if try_number == "":
- l.config(text="提示:输入错误!", font=("微软雅黑", 12))
- error = True
- elif 0 > int(try_number) or int(try_number) > 1000:
- l.config(text="提示:输入的数字必须介于1~1000!", font=("微软雅黑", 10))
- guess.delete(0, END)
- error = True
- elif int(try_number) < number:
- l.config(text="提示:您输入的数字小了!", font=("微软雅黑", 12))
- var2.set("")
- else:
- l.config(text="提示:您输入的数字大了!", font=("微软雅黑", 12))
- var2.set("")
- if not error:
- degree += 1
- var.set("尝试次数:"+ str(degree))
- def play():
- global root
- global var2
- global number
- global l
- global degree
- global var
- global test
- global guess
- root = Tk(className="猜数字游戏")
-
- test = root.register(check)
-
- l = Label(root, text="", font=("微软雅黑", 10))
- l.grid(row=1, column=0, sticky=W)
- l.config(text="提示:请输入数字", font=("微软雅黑", 12))
- number = random.randint(1, 1000)
- degree = 0
- var = StringVar()
- var.set("尝试次数:"+str(degree))
- Label(root, text="请输入一个1~1000之内的数字:", font=("微软雅黑", 11)).grid(row=0)
- var2 = StringVar()
- guess = Entry(root, textvariable=var2, width=20, validate="key", validatecommand=(test, "%P"))
- guess.grid(row=0, column=1)
- Label(root, textvariable=var, font=("微软雅黑", 11)).grid(row=1, column=1, sticky=E)
- Button(root, text="确定", width=10, command=yes).grid(row=2, column=0, sticky=W, columnspan=2)
- Button(root, text="规则", width=10, command=regulation).grid(row=2, column=1, columnspan=2)
- Button(root, text="退出", width=10, command=exit).grid(row=2, column=3, sticky=E, columnspan=2)
- guess.bind("<KeyPress-Return>", yes)
- guess.focus_set()
- if __name__ == "__main__":
- play()
复制代码
大家也帮我看看...... |
|