名称错误:名称'user'未定义;相关的类我认为

2024-06-16 10:17:11 发布

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

我正在尝试创建一个简单的基于文本的冒险游戏的战斗功能。我们还没有在课堂上讲课,但是在做了一些搜索之后,这似乎是最好的方法。但是,我一直得到一个名称错误:名称'user'没有定义。在

这是到目前为止的代码,我一直在搜索和搜索,只是不太明白哪里是错的。在

import sys
import random
import time

number = random.randint(0,20)


class user:


    def __init__ (self, player_name, player_health, health_potion):

        self.__player_health = player_health
        self.__player_name = player_name
        self.__health_potion = health_potion

        def getName(self):
            return self.__player_name

        def getHealth(self):
            return self.__player_health

        def getPotion(self):
            return self.__health_potion

        def setHealth(self):
            self.__player_health = 100

        def minusHealth(self, number):
            self.__player_health -= number
            return self.__player_health

        def minusPotion(self):
            self.__health_potion -= 1
            return self.__health_potion

        def plusPotion(self, number1):
            self.__health_potion += number1

        def plusHealth(self):
            self.__player_health += 20



    def fight(soldier, player1, name1):

        player1 = user(name1, player1.getHealth(), player1.getPotion())
        soldier = user('Soldier', soldier.getHealth(), soldier.getPotion())

        p = 0
        while p == 0:
            time.sleep(2)
            attack = input("1 = Attack with weapon, 2 = use potion")

            if attack == "1":

                time.sleep(1)
                print("You strike at your enemy. Soldier's health now is", soldier.minusHealth(number))
                print("Soldier hits you back and your health is now at", player1.minusHealth(number))

            elif attack == "2":

                time.sleep(1)
                print("You use a first aid-kit!")
                player1.plusHealth(), player1.minusPotion()

                if player1.getHealth() > 100:

                    player1.setHealth()
                    print("Soldier hits you back and your health is now at", player.minusHealth(number))

            elif enemy.getHealth() <= 0:

                    print("You have won the fight!")
                    s = 2


    def main():
        name1 = input("What would you like your player to be named?")
        time.sleep(1)

        player1 = user(name1, 100, 0)
        soldier = user('Soldier', 80, 0)

        print("Your characters stats are: Health:", player1.getHealth())
        time.sleep(2)

        soldier.setHealth(80)

        fight(soldier, player1, name1)

        booty1 = input("Type ' 1 ' to loot the enemy")
        if booty1 == "1":
            print("You find two first-aid kits")
            player1.__plusPotion(2)

    main()

Tags: selfnumberreturntimedefplayerprinthealth