图像界面设计----猜数字游戏

感情迁移 提交于 2020-03-09 14:57:26

开发工具:pycharm

游戏介绍:在游戏中,程序随机生成1024以内的数字,再让玩家去猜,如果猜的数字过大过小都会进行提示,程序还会统计玩家猜的次数。使用Tkinter开发猜数字游戏。

程序设计步骤

1.在猜数字游戏程序中导入相关模块。

2. 猜的数字number判断数字是过大还是过小。

3.实现窗体关闭。

一,在猜数字游戏程序中导入相关模块。

import tkinter as tk
import sys
import random
import re

二,猜的数字number判断数字是过大还是过小。

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
            label_tip_min.config(label_tip_min,text=nminn)
        labelqval("小了哦")
    else:
        if val_a<nmaxn:
            nmaxn=val_a
            num+=1
            label_tip_max.config(label_tip_max,text=nmaxn)
        labelqval("大了哦")
else:
    labelqval("你已经答对了哦")

三,实现窗体关闭。

line_btn=tk.Frame(root)
btnClose=tk.Button(line_btn,text="关闭")
btnClose.bind('<Button-1>',eBtnClose)
btnClose.pack(side="left")
line_btn.pack(side="top")

参考代码:

import tkinter as tk
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
                label_tip_min.config(label_tip_min,text=nminn)
            labelqval("小了哦")
        else:
            if val_a<nmaxn:
                nmaxn=val_a
                num+=1
                label_tip_max.config(label_tip_max,text=nmaxn)
            labelqval("大了哦")
    else:
        labelqval("你已经答对了哦")
def numGuess():
    if num==1:
        labelqval('一次答对!')
    elif num<10:
        labelqval("= =十次以内就答对了牛。尝试次数:"+str(num))
    elif num<50:
        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('<Return>',eBtnGuess)
btnGuess.bind('<Button-1>',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('<Button-1>',eBtnClose)
btnClose.pack(side="left")
line_btn.pack(side="top")

labelqval("请输入0-1024之间任意数字:")
entry_a.focus_set()

print(number)
root.mainloop()

运行界面:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!