![](/img/trans.png)
[英]Python dice roll guessing game with user input using randint and that gives feedback if guess was right or wrong
[英]Python guessing game [Dice]
import random
number = random.randrange(1, 10)
print(number)
guess_count = 0
guess_limit = 3
out_of_gusses = False
guess = int(input("enter ur guess: "))
while guess > number or guess != number and not out_of_gusses:
if guess > number:
print("ur guess is higer than the number")
else:
print("ur guess is lower than the number:")
if guess_count < guess_limit:
guess = int(input("enter ur guess: "))
guess_count += 1
else:
out_of_gusses = True
if out_of_gusses:
print("Out of guesses u lose: ")
else:
print("u Win")
我的問題是,當我運行程序並且我確實輸入了我的號碼時,它說即使號碼錯誤u win
了,當限制設置為 3 時,我也嘗試了 4 次guess:limit = 3
我是編碼新手,所以我不確定問題是什么,但我認為它與我的 while 循環的條件有關,但我不能完全理解我應該如何分階段
以下是如何將整個邏輯重組為簡單有效的方法:
import random
number = random.randrange(1, 10)
print(number)
guess_count = 0
guess_limit = 3
while True:
if guess_count < guess_limit:
guess = int(input("enter ur guess: "))
guess_count += 1
if guess == number:
print("u Win")
break
else:
print("Out of guesses u lose: ")
break
if guess > number:
print("ur guess is higer than the number")
elif guess < number:
print("ur guess is lower than the number:")
基本上,您會創建一個無限循環,如果猜測正確或他們的猜測用完了,您就可以打破這個無限循環。 這樣,您就可以將整個骰子游戲邏輯放入該while
循環中。
你的代碼有一些缺陷
while guess > number or guess != number and not out_of_gusses:
這解決了
while guess != number and not out_of_gusses:
因為只要guess > number
為true
, guess != number
無論如何true
。 這也意味着,如果您的猜測首先是正確的,則根本不會執行 while 循環。
你關閉一個guess_count
來自這樣一個事實,即你用 0 初始化guess_count
忽略了初始猜測。
if out_of_gusses:
print("Out of guesses u lose: ")
else:
print("u Win")
這個結論是不正確的,僅僅因為你沒有猜錯並不意味着你贏了!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.