1.序列应用——猜数字游戏

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
                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('<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("请输入01024之间任意整数:")
entry_a.focus_set()

print(number)
root.mainloop()

相关文章
相关标签/搜索