# attempt at a health system?
class Enemy:
def __init__(self,name,health,damage):
self.name = name
self.health = health
self.damage = damage
def attack(self):
print(f"The {goblin.name} attacks! Causing {goblin.damage} damage!")
player.health -= Enemy.damage
print(f"You have {player.health}")
goblin = Enemy("goblin",100,20)
class Player:
def __init__(self,health,damage):
self.health = health
self.damage = damage
player = Player(200,40)
goblin.attack()
error:
Traceback (most recent call last):File "c:\Users\user\Desktop\python stuff\project.py", line 10, in attackplayer.health -= Enemy.damage^^^^^^^^^^^^AttributeError: type object 'Enemy' has no attribute 'damage'
Я только начал программировать и не знаю, что означает эта ошибка.
Я хотел, чтобы терминал показывал, что созданный мной гоблин наносит урон, определяемый его конкретным экземпляром. Гоблин должен нанести 20 урона, раз я так написал. Я создал метод в классе «Враг» под названием «атака», где он должен использовать имя конкретного экземпляра и урон, а затем записывать в терминал, какой урон он наносит игроку. Но вместо этого я получаю эту ошибку. Я не уверен, как это исправить.






вместо этого используйте себя
def attack(self, player):
print(f"The {self.name} attacks! Causing {self.damage} damage!")
player.health -= self.damage
print(f"You have {player.health} health left.")
Может быть, как
class Enemy:
def __init__(self, name, health, damage):
self.name = name
self.health = health
self.damage = damage
def attack(self, player):
print(f"The {self.name} attacks! Causing {self.damage} damage!")
player.health -= self.damage
print(f"You have {player.health} health left.")
class Player:
def __init__(self, health, damage):
self.health = health
self.damage = damage
# Create instances
goblin = Enemy("goblin", 100, 20)
player = Player(200, 40)
# Perform attack
goblin.attack(player)
Ошибка в том, что вы написали
Enemy.damageвместоself.damage.