1.游戏介绍
在游戏中,程序随机生成1024以内的数字,再让玩家去猜,如果猜的数字过大过小都会进行提示,程序还会统计玩家猜的次数。使用Tkinter开发猜数字游戏
2.python图形界面设计
Python提供了多个图形开发界面的库,几个常用Python GUI库如下。
Tkinter: Tkinter模块(TK接口)是Python的标准Tk GUI工具包的接口。Tkinter可以在大多数的UNIX平台下使用,同样可以应用在Windows和Macintosh系统里。Tk 8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
vxPython: wxPython是一款开源软件,是Python语言的一套优秀的GUI图形库,允许用户方便地创建完整的、功能健全的GUI用户界面。
Jython: Jython程序可以与Java无缝集成。除了一些标准模块外,Jython使用Java的模块,Jython几乎拥有标准的Python中不依赖于C语言的全部模块。比如,Jython的用户界面使用Swing、AWT或者SWT呈现。Jython可以被动态或静态地编译成Java字节码。
3.部分代码注释
1.猜数字函数的编写
2.猜的次数
3.关闭窗口
4.代码参考
import sys
import random
import re
number=random.randint(0,1024)
running =True
num=0
nmaxn=1024
nminn=0
def eBtnClose(event):
root.destroy()
def eBtnGuess(event):
global nmaxn
global nminn
global num
global running
if running:
val_a = int(entry_a.get())
if val_a == number:
labelqval("恭喜答对了!")
num += 1
running = False
numGuess()
elif val_a < number:
if val_a >nminn:
nminn = val_a
num += 1
labelqval("小了,请输入" + str(nminn) + "到" + str(nmaxn) + "之间任意整数:")
else:
if val_a < nmaxn:
nmaxn = val_a
num += 1
labelqval("大了,请输入" + str(nminn) + "到" + str(nmaxn) + "之间任意整数:")
else:
labelqval("你答对了")
def numGuess():
if num == 1:
labelqval("一次答对")
elif num < 10:
labelqval("十次以内就答对了,尝试次数:" + str(num))
else:
labelqval("尝试次数:" + str(num))
def labelqval(vText):
label_val_q.config(label_val_q, text = vText)
root = tk.Tk(className = "猜数字游戏")
root.geometry("400x90+200+200")
line_a_tip=tk.Frame(root)
label_tip_max=tk.Label(line_a_tip,text=nmaxn)
label_tip_min=tk.Label(line_a_tip,text=nminn)
label_tip_max.pack(side="top",fill="x")
label_tip_min.pack(side="bottom",fill="x")
line_a_tip.pack(side="left",fill="y")
line_question = tk.Frame(root)
label_val_q = tk.Label(line_question, width = "80")
label_val_q.pack(side = "left")
line_question.pack(side = "top",fill = "x")
line_input = tk.Frame(root)
entry_a = tk.Entry(line_input, width = "40")
btnGuess = tk.Button(line_input, text = "猜")
entry_a.pack(side = "left")
entry_a.bind("", eBtnGuess)
btnGuess.bind("", eBtnGuess)
btnGuess.pack(side = "left")
line_input.pack(side = "top",fill = "x")
line_btn = tk.Frame(root)
btnClose = tk.Button(line_btn, text = "关闭")
btnClose.bind("", eBtnClose)
btnClose.pack(side = "left")
line_btn.pack(side="top")
labelqval("请输入0到1024之间任意整数:")
entry_a.focus_set()
print(number)
root.mainloop()
5.游戏展示