如果游戏玩了不止一次,为什么我的功能没有退出?

时间:2019-11-06 02:21:56

标签: python python-3.x

我正在通过制作一个简单的猜谜游戏来练习Python。看来效果很好,但是,即使Play again? (y/n):的答案是n,如果用户播放了不止一次,程序也不会退出。我认为这与递归有关,但我不确定如何解决它。

有指针吗?

print(key)只是为了快速赢得比赛用于调试。)

import random

def guess():
    while True:
        get = input("Enter a number between 1 and 9: ")
        try:
            num = int(get)
            break
        except ValueError:
            print("Please input an integer.")
    return num

def run_game():
    count = 0
    key = random.randint(1, 9)
    replay = None
    print(key)
    while True:
        num = guess()
        count += 1
        if num == key:
            print("Correct!")
            print("Total guesses:", count)
            replay = input("Play again? (y/n): ")
            if replay == 'y':
                run_game()
            elif replay == 'n':
                print("Thanks for playing!")
                return
        elif num > key:
            print("Too high!")
        else:
            print("Too low!")

run_game()

1 个答案:

答案 0 :(得分:0)

您将再次递归运行该函数,但是您不会在调用后退出,因此当用户从第二轮退出时,他会回到第一轮。

在致电return之后,您缺少的是run_game

例如。

if replay == 'y':
  run_game()
  return