Python中Guess The Number的重启选项



我有一个艰难的时间与这个猜数字分配。我好像做不对,需要一些帮助。"再玩一次"选项不起作用,因为当你赢得游戏并选择"是"再次玩游戏时,它不会重新开始游戏,而是继续你的下一个猜测数字(例如:猜测数字1,猜测数字2……)。但是当你输了,它会回到第一部分,问你"你想尝试多少次"。那我怎么才能得到你赢的那部分呢?另外,有没有人能给我一些建议,告诉我如何改进提示选项?此外,我需要插入任何def ():的东西吗?因为我不确定我们在这个作业中是否达到了这一点。所以请帮帮我。谢谢。

# This is a guess the number game.
import random
answer = "yes"
number = random.randint(1, 10)
while answer == 'yes':
    tries = 0
    guess = 0
    guessnumber = 0
    tries = int(input("How many tries would you like? "))
    tries2 = tries
    while guessnumber != tries2:
            guessnumber += 1
            guess = int(input("Enter guess number " + str(guessnumber) + ": "))
            if guess < number:
                print("You guessed too low")
                hint = input("Would you like a hint, yes or no?: ")
                if hint == "no":
                    continue
                    print("The number is less than", number + 1)
                if guess > number:
                    print("You guessed too high")
                    hint = input("Would you like a hint, yes or no?: ")
                    if hint == "no":
                        continue
                    print("The number is greater than", number - 1)
                if guess == number:
                    tries = str(tries)
                    print("YOU WON!")
                    answer = input("Play again? Yes/No? ") `enter code here`
                    if answer == 'no':
                        break
            if guess != number:
                number = str(number)
                print("GAME OVER!!! The number I was thinking of was " + number)
                answer = input("Play again? Yes/No? ")
                if answer == "no":
                    break

以下几点:

随机的。Randint(1,1)表示生成1到1之间的随机整数。它总是给出1.

当"tries"只设置一次时,为什么会有一个副本?

Python中的缩进很重要。它改变了if/elif/else分支的计算方式。所以(guess> number)和(guess == number)检查的条件是(guess <数字)这是不可能的。假设这些状态:(guess><Number),> Number)和(guess == Number)是互斥的,并且比较相同的变量,最好将后面的if块更改为elifs。

"GAME OVER"应该只在尝试耗尽后触发,所以它不能在(guessnumber <)循环。

# This is a guess the number game.
import random
answer = "yes"
number = random.randint(1, 100)
while answer != 'no':
    guess = 0
    guessnumber = 0
    tries = int(input("How many tries would you like? "))
    while guessnumber < tries:
            guessnumber += 1
            guess = int(input("Enter guess number " + str(guessnumber) + ": "))
            if guess < number:
                print("You guessed too low")
                hint = input("Would you like a hint, yes or no?: ")
                if hint == "no":
                    continue
                print("The number is less than", number + 1)
            elif guess > number:
                print("You guessed too high")
                hint = input("Would you like a hint, yes or no?: ")
                if hint == "no":
                    continue
                print("The number is greater than", number - 1)
            elif guess == number:
                print("YOU WON!")
                answer = input("Play again? Yes/No? ") #enter code here
                break
    if (guess != number) and (guessnumber >= tries):
        number = str(number)
        print("GAME OVER!!! The number I was thinking of was " + number)
        answer = input("Play again? Yes/No? ")

最简单的方法是使用函数。这是一些可能的伪代码:

def game():
    tries = 0
    guess = 0
    ...
    if guess != number:
        number = str(number)
        print("GAME OVER!!! The number I was thinking of was " + number)
 answer = "yes"
 while answer == 'yes':
     game()
     answer = input("Play again? Yes/No? ")
函数有助于将问题分解为更小、更易于维护的部分。

对于这段代码,当然可以在代码中重置变量,但不建议这样做。

注:理解游戏是什么是有可能的,但最好是写一个描述,而不是只写"任务"。问题越明确,你就越有可能得到答案。

最新更新