Python猜猜游戏如何重复

时间:2016-10-13 22:26:05

标签: python helper python-3.5

我一直在研究这个猜谜游戏,但是当玩家说是的时候我不能让它重复游戏。游戏给你5次尝试猜测它想到的数字然后在它询问你是否想要再次玩,但是当你说'是'时它只是不断重复句子,当你说'不'时它会做什么它应该打破代码

def main():
    game = "your game"
    print(game)
    play_again()
import random #imports random number function
print("Welcome to the number guessing game!")
counter=1 #This means that the score is set to 0
number = int(random.randint(1,10))
while counter >0 and counter <=5:

    guess=int(input("Try and guess the number\n"))#tells the user to try and guess the number
    if guess!=number and guess>number:
        print("wrong number! Try again you are too high")#tells you that you were wrong and that that you were too high
        counter=counter+1#adds 1 count for every attempt it took you to guess the number

    elif guess!=number and guess<number:
        print("wrong number! Try again you are too low!")#tells you that you were wrong and tells you that you were too low
        counter=counter+1#adds 1 count for every attempt it took you to guess the number
    else:
        print("Well done! You have guessed the number i was thinking of! The number was ",number)#Prints this out when you guessed the number
        print("it took you ",counter, "attempts!")#tells you how many attempts it took you to guess the number

    if counter==2:
        print("4 attempts left before program ends")

    if counter==3:
        print("3 attempts left before program ends")

    if counter==4:
        print("2 attempts left before program ends")

    if counter==5:
        print("1 attempts left before program ends")

def play_again():
    while True:
        play_again = input("Would you like to play again?(yes or no) : ")
        if play_again == "yes":
            main()
        if play_again == "no":
            exit()
        else:
            print("I'm sorry I could not recognize what you entered")
main()

2 个答案:

答案 0 :(得分:1)

这是因为你的游戏代码不在函数中。以这种方式尝试:

<import statements>

def game():
    <insert all game code>

def main():
    while True:
        play_again = input("Would you like to play again?(yes or no) : ")
        if play_again == "yes":
            game()
        if play_again == "no":
            exit()
        else:
            print("I'm sorry I could not recognize what you entered")

答案 1 :(得分:1)

我想指出您的代码存在的一些问题。 主要的一个是你的游戏在输入时不会再次运行。它只需运行main()即可打印your game,然后询问您是否要再次重试。如果你把游戏放在一个定义中,你可以在必要时调用它,这会更容易。

另外,我不知道它是否仅仅是我,但如果你猜对了正确的数字,它仍会让你猜一个数字。您需要将play_again()方法放在else块中,以退出循环。

以下是代码。我为了优化而稍微打磨了一下。

import random #imports random number function

def main():
    print("Welcome to the number guessing game!")
    game = "your game"
    print(game)
    run_game()
    play_again()

def run_game():
  counter = 1
  number = random.randint(1, 10)
  while counter > 0 and counter <= 5:
    guess=int(input("Try and guess the number\n"))#tells the user to try and guess the number
    if guess!=number and guess > number:
        print("wrong number! Try again you are too high")#tells you that you were wrong and that that you were too high
        counter=counter+1#adds 1 count for every attempt it took you to guess the number

    elif guess != number and guess < number:
        print("wrong number! Try again you are too low!")#tells you that you were wrong and tells you that you were too low
        counter=counter+1#adds 1 count for every attempt it took you to guess the number
    else:
        print("Well done! You have guessed the number i was thinking of! The number was " + str(number))#Prints this out when you guessed the number
        print("it took you " + str(counter) + " attempts!")#tells you how many attempts it took you to guess the number
        play_again()

    if counter == 2:
        print("4 attempts left before program ends")

    if counter == 3:
        print("3 attempts left before program ends")

    if counter == 4:
        print("2 attempts left before program ends")

    if counter == 5:
        print("1 attempts left before program ends")

def play_again():
    while True:
        retry = input("Would you like to play again?(yes or no) : ")
        if retry == "yes":
            main()
        if retry == "no":
            exit()
        else:
            print("I'm sorry I could not recognize what you entered")
main()