高局还是低局

2024-05-16 04:07:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试构建一个简单的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

我只做了一个星期,所以我的代码看起来像字母汤。。抱歉


Tags: orofthe用户gamenumberinputis
1条回答
网友
1楼 · 发布于 2024-05-16 04:07:23

问题是您正在将循环顶部的first_number重置为11

while not end_of_game:
    first_number = 11
    ...

因此,即使在玩家获胜时在循环中设置了first_number = second_number,它也只是在下一次迭代中重置为11

要解决此问题,只需将初始化移出循环,使其在进入循环之前只执行一次:

first_number = 11
while not end_of_game:
    ...

相关问题 更多 >