python - 当我猜不透时,我试图重玩游戏(当我猜不透或找到正确答案时,再玩一次)

标签 python python-3.x loops

我的目标是在我玩完游戏后能够再次运行代码
自动地。在代码的底部,我尝试编写一个可以重新运行游戏的代码,但是它似乎有一个语法错误

import random 

MAX_GUESSES = 5 #max number of guesses allowed

MAX_RANGE = 20 #highest possible number

#show introductionpygame
print("welcome to my franchise guess number game")
print("guess any number between 1 and", MAX_RANGE)
print("you will have a range from", MAX_GUESSES, "guesses")

#choose random target
target = random.randrange(1, MAX_RANGE + 1)

#guess counter
guessCounter = 0

#loop fovever
while True:
      userGuess = input("take a guess:")
      userGuess =int(userGuess)

#increment guess counter
guessCounter = guessCounter + 1

#if user's guess is correct, congratulate user, we're done
if userGuess == target:
        print("you got it la")
        print("it only took you",guessCounter, "guess(es)")
        break
elif userGuess < target:
        print("try again, your guess is too low.")
else:
        print(" your guess was too high")

#if reached max guesses, tell answer correct answer, were done
if guessCounter == MAX_GUESSES:

        print(" you didnt get it in ", MAX_GUESSES, "guesses")
        print("the number was", target)
        break
    
print("Thanks for playing ")


#main code
while True:
    playOneRound() #call a function to play one round of the game
    goAgain = input("play again?(press ENTER to continue, or q to quit ):")
    if goAgain == "q":
        break

最佳答案

你忘了提到函数名 playOneRound .下面的代码工作正常。

import random

MAX_GUESSES = 5  # max number of guesses allowed

MAX_RANGE = 20  # highest possible number

# show introductionpygame
print("welcome to my franchise guess number game")
print("guess any number between 1 and", MAX_RANGE)
print("you will have a range from", MAX_GUESSES, "guesses")

def playOneRound():
    # choose random target
    target = random.randrange(1, MAX_RANGE + 1)

    # guess counter
    guessCounter = 0

    # loop fovever
    while True:
        userGuess = input("take a guess:")
        userGuess = int(userGuess)

        # increment guess counter
        guessCounter = guessCounter + 1

        # if user's guess is correct, congratulate user, we're done
        if userGuess == target:
            print("you got it la")
            print("it only took you", guessCounter, "guess(es)")
            break
        elif userGuess < target:
            print("try again, your guess is too low.")
        else:
            print(" your guess was too high")

        # if reached max guesses, tell answer correct answer, were done
        if guessCounter == MAX_GUESSES:
            print(" you didnt get it in ", MAX_GUESSES, "guesses")
            print("the number was", target)
            break

        print("Thanks for playing ")

    # main code

while True:
    playOneRound()  # call a function to play one round of the game
    goAgain = input("play again?(press ENTER to continue, or q to quit ):")
    if goAgain == "q":
        break

关于python - 当我猜不透时,我试图重玩游戏(当我猜不透或找到正确答案时,再玩一次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67327176/

相关文章:

python - 为什么这个操作返回 False? (string.__class__ == "<class ' str'>")

javascript - react JSX : Maximum update depth exceeded

python - 如何使用 Flask 框架从数据库中删除项目?

python - TensorFlow 1.5.0-rc0 : error using `tf.app.flags`

python - 如何在 Jupyter 选项卡小部件中显示 matplotlib 图?

Python 二进制字符串转 ASCII 文本

python - 验证邮政编码?

python - 如何在python中使用带有字符异常的多行DOTALL

c - 具有不同迭代的循环

c++ - 使用 cin 的良好输入验证循环 - C++