![](/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.