遊戲介紹: 程序隨機生成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()
運行結果: