简体   繁体   English

如何使用while循环使程序go回到代码顶部?

[英]How to make the program go back to the top of the code with a while loop?

I need to include a decrement life counter that has 5 lives.我需要包括一个有 5 条生命的递减生命计数器。 I need to use a while loop and once the player loses a life it needs to send them back to the choice between going left and right in the code.我需要使用一个while循环,一旦玩家失去生命,它需要让他们回到代码中左右选择之间。 I am new to python so I am not very familiar with it, any help is appreciated.我是 python 的新手,所以我不太熟悉它,感谢任何帮助。

answer = input("Do you want to go on an adventure? (Yes/No) ")
if answer.lower().strip() == "yes":
   
    x=5
    while x > 0:
        print("You have ",x,"lives left.") 
        if x > 0:
            break
        x-=1
        if x == 0:
                break
    answer= input("You are lost in the forest and the path splits. Do you go left or right? (Left/Right) ").lower().strip()
    if answer == "left":
 
        answer = input("An evil witch tries to cast a spell on you, do you run or attack? (Run/Attack) ").lower().strip()
        if answer == "attack":
            print("She turned you into a green one-legged chicken, you lost!")
 
        elif answer == "run":
            print("Wise choice, you made it away safely.")
            answer = input("You see a car and a plane.  Which would you like to take? (Car/Plane) ").lower().strip()
            if answer == "plane":
                print("Unfortunately, there is no pilot. You are stuck!")
            elif answer == "car":
                print("You found your way home. Congrats, you won!")
 
            elif answer != "plane" or answer != "car":
                print("You spent too much time deciding...")
        else:
            print("You are frozen and can't talk for 100 years...")
    elif answer == "right":
     
        import random 
        num = random.randint(1, 3)  
        answer = input("Pick a number from 1 to 3: ")
        if answer == str(num):
            print("I'm also thinking about {} ".format(num))
            print("You woke up from this dream.")
        elif answer != num: 
            print("You fall into deep sand and get swallowed up. You lost!")
    else:
        print("You can't run away...")
 
else: 
    print("That's too bad!")

  1. You should try to add comments to your code, it will help you and others as well.您应该尝试在您的代码中添加注释,它也会对您和其他人有所帮助。
  2. I think for getting user answer, you should use a different variable.我认为要获得用户答案,您应该使用不同的变量。 It will make things easier.它会让事情变得更容易。

I removed the following code, it didn't make any sense to me.删除了以下代码,这对我没有任何意义。

while x > 0:
        print("You have ",x,"lives left.") 
        if x > 0:
            break
        x-=1
        if x == 0:
                break
    

-- --

This is the code, which works:这是有效的代码:

 # Try to write imported modules at the top, it's a good practice.
import random 

# Start the game
answer_start = input("Do you want to go on an adventure? (Yes/No) ")

# user chooses to play
if answer_start.lower().strip() == "yes":   
    lives=5
    # function for displaying the lives    
    def display_lives():
        print("You have ",lives,"lives") 

    #display lives
    display_lives()

   # As long lives are more than 0, this will keep going. 
    while lives>0:
        #First choice
        answer1= input("You are lost in the forest and the path splits. Do you go left or right? (Left/Right) ").lower().strip()

        #User chooses left
        if answer1 == "left":
            answer2 = input("An evil witch tries to cast a spell on you, do you run or attack? (Run/Attack) ").lower().strip()
            if answer2 == "attack":
                print("She turned you into a green one-legged chicken, you lost!")
                lives=lives-1
                display_lives()

        # User is running away
            elif answer2 == "run":
                print("Wise choice, you made it away safely.")
                answer3 = input("You see a car and a plane.  Which would you like to take? (Car/Plane) ").lower().strip()
                if answer3 == "plane":
                    print("Unfortunately, there is no pilot. You are stuck!")
                elif answer3 == "car":
                    print("You found your way home. Congrats, you won!")

                elif answer3 != "plane" or answer3 != "car":
                    print("You spent too much time deciding...")
            else:
                print("You are frozen and can't talk for 100 years...")
        elif answer1 == "right":


            num = random.randint(1, 3)  
            answer4 = input("Pick a number from 1 to 3: ")
            if answer4 == str(num):
                print("I'm also thinking about {} ".format(num))
                print("You woke up from this dream.")
            elif answer4 != num: 
                print("You fall into deep sand and get swallowed up. You lost!")
                lives=lives-1
        else:
            print("You can't run away...")

    #Player chose not to play or player out of lives.
else: 
        print("That's too bad!")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM