简单python文本冒险游戏错误

2024-04-29 09:46:28 发布

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

我在网上得到了这个rpg文本冒险游戏示例,我正在努力理解这些代码,以便将来可以将其作为开发我自己的文本冒险游戏的参考。然而,我目前面临的错误是“第121行未定义黄金,我怀疑是缩进错误造成的。虽然这是我目前面临的错误,但我相信代码中还有更多错误,我很高兴有人指出。谢谢

# gold = int(100)
inventory = ["sword", "armor", "potion"]

print("Welcome hero")
name = input("What is your name: ")
print("Hello", name,)
# role playing program
#
# spend 30 points on strenght, health, wisdom, dexterity 
# player can spend and take points from any attribute

classic = {"Warrior",
         "Archer",
         "Mage",
         "Healer"}
print("Choose your race from", classic,)
classicChoice = input("What class do you choose: ")
print("You are now a", classicChoice,)


# library contains attribute and points
attributes = {"strenght": int("0"),
             "health": "0",
             "wisdom": "0",
             "dexterity": "0"}

pool = int(30)
choice = None
print("The Making of a Hero !!!")
print(attributes)
print("\nYou have", pool, "points to spend.")

while choice != "0":
    # list of choices
    print(
    """
    Options: 

    0 - End
    1 - Add points to an attribute
    2 - remove points from an attribute
    3 - Show attributes
    """
    )
    choice = input("Choose option: ")
    if choice == "0":
        print("\nYour hero stats are:")
        print(attributes)
    elif choice == "1":
        print("\nADD POINTS TO AN ATTRIBUTE")
        print("You have", pool, "points to spend.")
        print(
        """
        Choose an attribute:
           strenght
           health
           wisdom
           dexterity
        """
        )
        at_choice = input("Your choice: ")
        if at_choice.lower() in attributes:
            points = int(input("How many points do you want to assign: "))
            if points <= pool:
                pool -= points
                result = int(attributes[at_choice]) + points
                attributes[at_choice] = result
                print("\nPoints have been added.")
            else:
                print("\nYou do not have that many points to spend")
        else:
            print("\nThat attribute does not exist.")
    elif choice == "2":
        print("\nREMOVE POINTS FROM AN ATTRIBUTE")
        print("You have", pool, "points to spend.")
        print(
        """
        Choose an attribute:
           strenght
           health
           wisdom
           dexterity
        """
        )
        at_choice = input("Your choice: ")
        if at_choice.lower() in attributes:
            points = int(input("How many points do you want to remove: "))
            if points <= int(attributes[at_choice]):
                pool += points
                result = int(attributes[at_choice]) - points
                attributes[at_choice] = result
                print("\nPoints have been removed.")
            else:
                print("\nThere are not that many points in that attribute")
        else:
            print("\nThat attribute does not exist.")

    elif choice == "3":
        print("\n", attributes)
        print("Pool: ", pool)
    else:
        print(choice, "is not a valid option.")





While True:
print("Here is your inventory: ", inventory)
print("What do you wish to do?")
print("please input shop, tavern, forest.")
choice = input("Go to the shop, go to the tavern, go to the forest: ")

crossbow = int(50)
spell = int(35)
potion = int(35)


if choice == "shop":
    print("Welcome to the shop!")
    print("You have", gold,"gold")
    buy = input("What would you like to buy? A crossbow, a spell or a potion: ")

    if buy == "crossbow":
        print("this costs 50 gold")
        answer = input("Do you want it: ")
        if answer == "yes":
            print("Thank you for coming!")
            inventory.append("crossbow")
            gold = gold - crossbow
            print("Your inventory is now:")
            print(inventory)
            print("Your gold store now is: ", gold)
        if answer == "no":
            print("Thank you for coming!")

    if buy == "spell":
        print("this costs 35 gold")
        answear2 = input("Do you want it: ")
        if answear2 == "yes":
            print("Thank you for coming!")
            inventory.append("spell")
            gold = gold - spell
            print("Your inventory is now:")
            print(inventory)
        if answear2 == "no":
            print("Thank you for coming!")


    if buy == "potion":
        print("this costs 35 gold")
        answear3 = input("Do you want it: ")
        if answear3 == "yes":
            print("Thank you for coming!")
            inventory.append("spell")
            gold = gold - potion
            print("Your inventory is now:")
            print(inventory)
        if answear3 == "no":
            print("Thank you for coming!")


choice = input("Go to the shop, go to the tavern, go to the forest: ")
while choice != "shop" or "tavern" or "forest":
    print("Not acepted")
    print("What do you wish to do?")
    print("please input shop, tavern, forest.")
    choice = input("Go to the shop, go to the tavern, go to the forest: ")

if choice == "teavern":
    print("You enter the tavern and see a couple of drunken warriors singing, a landlord behind the bar and a dodgy figure sitting at the back of the tavern.")
    tavernChoice = input("Would you like to talk to the 'drunken warriors', to the 'inn keeper', approach the 'dodgy figure' or 'exit'")

    if tavernChoice == "drunken warriors":
        print("You approach the warriors to greet them.")
        print("They notice you as you get close and become weary of your presence.")
        print("As you arrive at their table one of the warriors throughs a mug of ale at you.")
    if dexterity >= 5:
        print("You quickly dodge the mug and leave the warriors alone")
    else:
        print("You are caught off guard and take the mug to the face compleatly soaking you.")
        print("The dodgy figure leaves the tavern")

Tags: thetoyouinputifattributeatattributes