如何开始 Python 游戏循环?

How do you start a Python game loop?

我有这个非常简单的主机游戏,我想在用户回答问题后重新开始循环,但似乎有些地方不正常。

import random

random_number = random.randrange(0, 500)
chosen_number = int(input("Please pick a number: "))
gameOn = 1

while gameOn == 1:
    if chosen_number == 500 or chosen_number <= 0 :
        print("Number must be below 500 and above 0.")
        print(random_number)
        chosen_number = int(input("Please pick a number: "))
        continue
    if chosen_number > random_number:
          print("Too high")
          chosen_number = int(input("Please pick a number: "))
    elif chosen_number < random_number: 
          print("Too low")
          chosen_number = int(input("Please pick a number: "))
    else:
        print("Congratulations, you guessed right. The number was " + str(chosen_number) + ".")
        break

    answer = input("Do you want to play again? Y/N ")

    if answer == "Y" or "y" or "yes":
        gameOn = 0
    else:
        print("Goodbye!")

当您要求再次播放时,您将 gameOn 设置为 0(因为 gameOn 需要为 1),这将退出循环,您的代码应如下所示

if answer in ("Y", "y", "yes"):
    print("Starting again")
else:
    print("Goodbye!")
    gameOn = 0

需要进一步说明,因为您在每场比赛中都选择了一个号码,因此您也需要将其放入循环中


import random
gameOn = 1

while gameOn == 1:
    random_number = random.randrange(0, 500)
    chosen_number = int(input("Please pick a number: "))
    if chosen_number == 500 or chosen_number <= 0 :
        print("Number must be below 500 and above 0.")
        print(random_number)
        chosen_number = int(input("Please pick a number: "))
        continue
    if chosen_number > random_number:
          print("Too high")
          chosen_number = int(input("Please pick a number: "))
    elif chosen_number < random_number: 
          print("Too low")
          chosen_number = int(input("Please pick a number: "))
    else:
        print("Congratulations, you guessed right. The number was " + str(chosen_number) + ".")
        break

    answer = input("Do you want to play again? Y/N ")

    if answer in ("Y", "y", "yes"):
        print("Starting again")
    else:
        print("Goodbye!")
        gameOn = 0

如果您不更改任何变量,循环将自动重新启动。所以我会将您的 if else 语句更改为 if 语句:

if answer.lower() != "y" or answer.lower() != "yes":
    break

但是为了让游戏重新运行正确并更改随机数变量,您需要重新执行整个程序,您可以通过将程序放入函数中然后将函数和该循环中的 if 语句,例如:

import random
def runGame():
    random_number = random.randrange(0, 500)
    chosen_number = int(input("Please pick a number: "))
    running = True

    while running:
        if chosen_number == 500 or chosen_number <= 0 :
            print("Number must be below 500 and above 0.")
            print(random_number)
            chosen_number = int(input("Please pick a number: "))
            continue
        if chosen_number > random_number:
            print("Too high")
            chosen_number = int(input("Please pick a number: "))
        elif chosen_number < random_number: 
            print("Too low")
            chosen_number = int(input("Please pick a number: "))
        else:
            print("Congratulations, you guessed right. The number was " + str(chosen_number) + ".")
        break

    
while gameOn == 1:
    runGame()
    answer = input("Do you want to play again? Y/N ")
    if answer.lower() != "y" or answer.lower() != "yes":
        gameOn = 0

你可以做一件简单的事情,只需将整个代码放在一个函数中,当你想重新启动时只需调用该函数

看下面的代码:

import random

def game():
  random_number = random.randrange(0, 500)
  chosen_number = int(input("Please pick a number: "))

  while True:
      if chosen_number == 500 or chosen_number <= 0 :
          print("Number must be below 500 and above 0.")
          print(random_number)
          chosen_number = int(input("Please pick a number: "))
          continue
      if chosen_number > random_number:
            print("Too high")
            chosen_number = int(input("Please pick a number: "))
      elif chosen_number < random_number: 
            print("Too low")
            chosen_number = int(input("Please pick a number: "))
      else:
          print("Congratulations, you guessed right. The number was " + str(chosen_number) + ".")
          break

      answer = input("Do you want to play again? Y/N ")

      if answer.lower() == "y" or "yes": # Lower() is used for changing the whole string to lowercase
          game()
      else:
          print("Goodbye!")