基于文本的冒险挑战问题

2024-05-15 14:33:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编码很陌生,我一直在尝试这个基于文本的冒险游戏。我一直遇到语法错误,我似乎不知道如何解决这个问题。任何关于我可能出错的地方的建议都会大有帮助


    def play_again():
        print("\nDo you want to play again? (y/n)")
        answer = input(">")
        if answer == "y":
            play_again()
        else:
            exit()
    
    def game_over(reason):
        print("\n", reason)
        print("Game Over!!!")
    
        play_again()
    
    def diamond_room():
        print("\nYou are now in the room filled with diamonds")
        print("what would you like to do?")
        print("1) pack all the diamonds")
        print("2) Go through the door")
        answer = input(">")
        
        if answer == "1":
            game_over("The building collapsed bcos the diamonds were cursed!")
        elif answer == "2":
            print("You Win!!!")
            play_again()
        else:
            game_over("Invalid prompt!")
    
    
    def monster_room():
        print("\nYou are now in the room of a monster")
        print("The monster is sleeping and you have 2 choices")
        print("1) Go through the door silently")
        print("2) Kill the monster and show your courage")
        answer = input(">")
    
        if answer == "1":
            diamond_room()
        elif answer == "2":
            game_over("You are killed")
        else:
            game_over("Invalid prompt")
    
    
    def bear_room():
        print("\nThere's a bear in here!")
        print("The bear is eating tasty honey")
        print("what would you like to do?")
        print("1) Take the honey")
        print("2) Taunt the bear!")
        answer = input(">").lower()
    
        if answer == "1":
            game_over("The bear killed you!!!")
        elif answer == "2":
            print("The bear moved from the door, you can now go through!")
            diamond_room()
        else:
            game_over("Invalid prompt")
    
    
    def start():
        print("Do you want to play my game?")
        answer = input(">").lower()
    
        if answer == "y":
            print("\nyou're standing in a dark room")
            print("you have 2 options, choose l or r")
            answer == input(">")
    
        if answer == "l":
            bear_room()
        elif answer == "r":
            monster_room()
        else:
            game_over("Invalid prompt!")
            
    start()

它不断弹出错误,我无法检测错误来自何处


Tags: theansweryougameinputplayifdef
2条回答

在代码的这一部分中,您应该更改最后一行:

if answer == "y":
   print("\nyou're standing in a dark room")
   print("you have 2 options, choose l or r")
   answer == input(">")

回答=输入(“>;”)。下()

  1. 使用=为变量赋值,使用==检查相似性(例如在if中)
  2. 最好将用户输入作为代码的其他部分输入小写,因为在代码的下一行中,您已经用小写(r和l)检查了if条件下的值

3)另一个问题是在def play_reach()中:必须调用start()函数,如下所示:

        print("\nDo you want to play again? (y/n)")
        answer = input(">")
        if answer == "y":
            start()

你有两个问题

  1. 断言而不是赋值
  2. 调用错误的函数

1。你有

def start():
    print("Do you want to play my game?")
    answer = input(">").lower()

    if answer == "y":
        print("\nyou're standing in a dark room")
        print("you have 2 options, choose l or r")
        answer == input(">")

    if answer == "l":
        bear_room()
    elif answer == "r":
        monster_room()
    else:
        game_over("Invalid prompt!")

你应该使用answer = input(">")而不是answer ==

两个人。你有

def play_again():
    print("\nDo you want to play again? (y/n)")
    answer = input(">")
    if answer == "y":
        play_again()
    else:
        exit()

您应该调用start而不是play_again

相关问题 更多 >