Tkinter圖形界面設計——猜數字遊戲

遊戲介紹程序隨機生成1024之內的數字,讓玩家去猜,若是猜的數字過大太小都會進行提示,程序統計玩家猜的次數。python

python界面窗口設計:python導入 Tkinter組件 建立Windows窗口 框架

框架( Frame)組件:Frame組件是框架組件,在進行分組組織其餘組件的也程個很是亙妥,負貢安排容器。dom

 

程序設計步驟ide

程序中導入相關模塊:函數

random.randint(0,1024)隨機產生玩家要猜的數字。oop

猜按鈕事件函數從單行文本框entry_a獲取猜的數字並轉換成數字val a,而後判斷是否正確,並根據要猜的數字number判斷數字是過大仍是太小。spa

HumGuess()函數修改提示標籤文字來顯示猜的次數。設計

關閉按鈕事件函數實現窗體關閉。blog

主程序實現遊戲的窗體界面。遊戲

 

 

參考代碼:

參數爲"400x400+20+20"類的參數,注意這裏x爲小寫字母x

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.destory()
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("wow,一次答對")
    elif num<10:
        labelqval("十次之內就答對了,嘗試次數"+str(num))
    elif num<50:
        labelqval("還行吧,嘗試次數"+str(num))
    else:
        labelqval("好吧,您都已經超過50次了")

def labelqval(vText):
    label_val_q.config(label_val_q,text=vText)

root=tk.Tk(className="猜數字遊戲") #這裏x爲小寫字母x 
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()

運行結果:

相關文章
相關標籤/搜索