我正在尝试构建一个简单的python游戏,您必须猜测下一个数字是高还是低。计算机可以选择的数字范围是1,21
用户输入高或低(H或L),计算机随机生成第二个数字,然后对照第一个数字进行检查,以确定用户猜测是否正确
我要面对的问题是,一旦计算机生成了第二个数字,我希望循环继续以该数字作为用户必须猜测的数字
例如:
电脑号码-11 用户输入更高 第二个号码-15
用户是正确的。然后他们必须猜测下一个数字是高于还是低于15
我无法让第二个数字成为用户猜测的数字,相反,循环再次开始,数字始终为11,这是我设置的起点
有人知道如何让它工作吗
代码:
streak = 0
print(artwork.title)
print("Welcome to High or Low!\nDo you think the next number will be higher or lower?")
print("\nThe game always starts with the number 11, get a streak of 5 to win!")
end_of_game = False
while not end_of_game:
first_number = 11
second_number = random.randint(1, 21)
player_input = input("\nHigher or Lower? Type H or L\n").lower()
if player_input == "h" and second_number > first_number:
streak += 1
print(f"{second_number} Correct!")
first_number = second_number
print(f"Current Streak is: {streak}")
print(f"\n\nThe current number is: {first_number}")
if streak == 5:
print("Congratulations YOU WIN!")
end_of_game = True
elif player_input == "l" and second_number > first_number:
print(f"{second_number}, Unlucky")
print("\nTry again, the number is 11")
streak = 0
elif player_input == "h" and second_number < first_number:
print(f"{second_number}, Unlucky")
print("\nTry again, the number is 11")
streak = 0
elif player_input == "l" and second_number < first_number:
streak += 1
print(f"{second_number} Correct!")
first_number = second_number
print(f"Current Streak is: {streak}")
print(f"\n\nThe current number is: {first_number}")
if streak == 5:
print("Congratulations YOU WIN!")
end_of_game = True
我只做了一个星期,所以我的代码看起来像字母汤。。抱歉
问题是您正在将循环顶部的
first_number
重置为11
:因此,即使在玩家获胜时在循环中设置了
first_number = second_number
,它也只是在下一次迭代中重置为11
要解决此问题,只需将初始化移出循环,使其在进入循环之前只执行一次:
相关问题 更多 >
编程相关推荐