我是 python 新手,現在我正在嘗試制作一個 GUI Tkinter,它給出一個 1-9 的隨機整數,然后我會從用戶和他的賭注中獲取一個條目,如果用戶的猜測是正確的,那么他的賭注會加到他的錢里(錢= 1000),如果錯了,它會從他的錢中減去賭注,所有這一切都必須一鍵完成。我的問題是,對于我的代碼,第一次比較是正確的,但之后它總是錯誤的,就像它不再讀取我的 if-else 陳述句一樣。并且價值為 1000 的可變貨幣總是在我第二次單擊按鈕時重置,就像第一次一樣,如果賭注是 500 并且猜測是正確的,它會添加但之后它總是會重置,而不是第二次猜測后的數字是 2000,它會重新從 1500 開始,就像它沒有一樣'
我不知道該怎么辦,請幫忙。
import tkinter as tk
import random
window = tk.Tk()
window.title("Guessing Game")
window.geometry("600x600")
window.configure(bg="Orange")
num = random.randint(1, 9)
def my_guess():
guess = int(txtGuess.get())
bet = int(txtBet.get())
money = 1000
if guess == num:
money = money bet
lblBet.config(text=money)
lblNumber.config(text=random.randint(1, 9))
else:
money = money - bet
lblBet.config(text=money)
lblNumber.config(text=random.randint(1, 9))
lblNumber = tk.Label(window, text=num, fg="blue", bg="Violet", font=("Bold", 25), width=5,
height=2)
lblNumber.place(x=30, y=180)
lblRandom = tk.Label(window, text="Random", fg="indigo", bg="black", font=("Bold", 25),
width=8, height=2)
lblRandom.place(x=10, y=20)
lblMoney = tk.Label(window, text="Money", fg="indigo", bg="black", font=("Bold", 25), width=8,
height=2)
lblMoney.place(x=210, y=20)
lblBet = tk.Label(window, text="1000", fg="blue", bg="Violet", font=("Arial", 27), width=8,
height=2)
lblBet.place(x=210, y=180)
lblGuess = tk.Label(window, text="Guess", fg="indigo", bg="black", font=("Bold", 25), width=8,
height=2)
lblGuess.place(x=410, y=20)
txtGuess = tk.Entry(window, text="", fg="blue", bg="Violet", font=("Arial", 25), width=8)
txtGuess.place(x=410, y=180)
txtBet = tk.Entry(window, text="", fg="blue", bg="Violet", font=("Arial", 15), width=20)
txtBet.place(x=195, y=400)
btnBet = tk.Button(window, text="Bet", font=("Arial", 15), width=20)
btnBet.place(x=195, y=450)
window.mainloop()
uj5u.com熱心網友回復:
你忘記了基礎知識。您需要添加一個命令選項以在單擊按鈕時運行該功能 -
btnBet = tk.Button(window, text="Bet", font=("Arial", 15), width=20,command=my_guess)
注意-()使用命令時不應在此處添加。
如果您使用過lambda,則可以添加它,例如 -command=lambda:my_guess()
uj5u.com熱心網友回復:
問題是你在guess函式中將money設定為1000,money值應該從lblBet標簽中提取出來。此外 num 也應該從隨機標簽中提取出來。
更新后的猜測函式:
def my_guess():
guess = int(txtGuess.get())
bet = int(txtBet.get())
money = int(lblBet["text"])
num = int(lblNumber["text"])
if guess == num:
money = money bet
lblBet.config(text=money)
lblNumber.config(text=random.randint(1, 9))
else:
money = money - bet
lblBet.config(text=money)
lblNumber.config(text=random.randint(1, 9))
您還需要為按鈕添加猜測功能。
btnBet = tk.Button(window, text="Bet", font=("Arial", 15), width=20, command=my_guess)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/362008.html
下一篇:隨著系統時間的推移使計數器遞增
