1. 程式人生 > >Python程式設計實現:猜數遊戲

Python程式設計實現:猜數遊戲

程式設計實現:猜數遊戲

**由程式隨機產生一個0~100之間的整數,然後讓使用者輸入一個整數,判斷輸入是否正確,若正確,則結束遊戲,輸出資訊;如錯誤,則提示“大了”或“小了”,且還可再輸入一個整數,當猜數次數達到8次時,則結束遊戲。輸出資訊請按如下規則確定:
(1)輸入次數達到8次,輸出資訊”你的表現太差,遊戲結束”;
(2) 輸入次數達到5~7次,輸出資訊”你的表現還可以,遊戲結束”;
(2) 輸入次數在4次及以下,輸出資訊”你的表現很優秀,遊戲結束”;**

呼叫庫檔案

from tkinter import *
from tkinter.messagebox import *
from
random import *

框體實現(GUI程式設計)

global ent1
root=Tk()
root.wm_title('猜數遊戲')
lbl1=Label(root,text='請輸入一個大於0小於100的整數')
lbl1.grid(row=0,column=0,sticky=W)
ent1=Entry(root)
ent1.grid(row=0,column=1,sticky=E)
btn=Button(root,text='上交',command=cheaknumber)#一鍵檢測數字是否符合要求
btn.grid(row=2,column=2,sticky=W)
btn=Button(root,text='生成數字'
,command=creanumber)#一鍵生成隨機數 btn.grid(row=0,column=2,sticky=W) root.mainloop()

事件編寫

生成數字

def creanumber():
    global str2
    str2=randint(0,100)
    print(str2)#輸出生成數

數字獲取計數

def counter():
    count=0
    global count=,root
    count+=1
    lal=Label(root,text='輸入第'+str(count)+'次')

數字檢測

def cheaknumber():
    counter()
    str1=ent1.get()
    t1=len(str1)
    int(str1)
    if int(str1)>str2:
        message4()
    elif int(str1)==str2:
        if count==8:
            message1()
        if count>=5 and count<=7:
            message2()
        if count<=4:
                message3()
    else:
        message5()

通知框編寫

def message1():
    root=Tk()
    root.wm_title('提示')
    showinfo(title='提示',message='你的表現太差,遊戲結束')
    root.mainloop()
def message2():
    root=Tk()
    root.wm_title('提示')
    showinfo(title='提示',message='你的表現還可以,遊戲結束')
    root.mainloop()
def message3():
    root=Tk()
    root.wm_title('提示')
    showinfo(title='提示',message='你的表現很優秀,遊戲結束')
    root.mainloop()
def message4():
    root=Tk()
    root.wm_title('提示')
    showinfo(title='提示',message='你輸入的數字過大')
    root.mainloop()
def message5():
    root=Tk()
    root.wm_title('提示')
    showinfo(title='提示',message='你輸入的數字過小')

完整程式碼

from tkinter import *
from tkinter.messagebox import *
from random import *
#------
count=0
def creanumber():
    global str2
    str2=randint(0,100)
    print(str2)
def message1():
    root=Tk()
    root.wm_title('提示')
    showinfo(title='提示',message='你的表現太差,遊戲結束')
    root.mainloop()
def message2():
    root=Tk()
    root.wm_title('提示')
    showinfo(title='提示',message='你的表現還可以,遊戲結束')
    root.mainloop()
def message3():
    root=Tk()
    root.wm_title('提示')
    showinfo(title='提示',message='你的表現很優秀,遊戲結束')
    root.mainloop()
def message4():
    root=Tk()
    root.wm_title('提示')
    showinfo(title='提示',message='你輸入的數字過大')
    root.mainloop()
def message5():
    root=Tk()
    root.wm_title('提示')
    showinfo(title='提示',message='你輸入的數字過小')
    root.mainloop()
def cheaknumber():
    counter()
    str1=ent1.get()
    t1=len(str1)
    int(str1)
    if int(str1)>str2:
        message4()
    elif int(str1)==str2:
        if count==8:
            message1()
        if count>=5 and count<=7:
            message2()
        if count<=4:
                message3()
    else:
        message5()
def counter():
    global count,root
    count+=1
    lal=Label(root,text='輸入第'+str(count)+'次')    
#def getnumber():
global ent1
root=Tk()
root.wm_title('猜數遊戲')
lbl1=Label(root,text='請輸入一個大於0小於100的整數')
lbl1.grid(row=0,column=0,sticky=W)
ent1=Entry(root)
ent1.grid(row=0,column=1,sticky=E)
btn=Button(root,text='上交',command=cheaknumber)
btn.grid(row=2,column=2,sticky=W)
btn=Button(root,text='生成數字',command=creanumber)
btn.grid(row=0,column=2,sticky=W)
root.mainloop()