In [9]:
################################ ABSTRACCIÓN #################################
################################ ABSTRACCIÓN #################################
class Personaje:
def __init__(self, nombre, fuerza, inteligencia, defensa, vida):
self.nombre = nombre
self.__fuerza = fuerza
self.__inteligencia = inteligencia
self.__defensa = defensa
self.__vida = vida
self.__aguante = fuerza * vida
self.__turno = False
def atributos(self):
print(self.nombre, ":", sep="")
print("-Fuerza : ", self.__fuerza)
print("-Inteligencia : ", self.__inteligencia)
print("-Defensa : ", self.__defensa)
print("-Vida: ", self.__vida)
def subir_nivel(self, fuerza, inteligencia, defensa):
self.__fuerza = self.__fuerza + fuerza
self.__inteligencia = self.__inteligencia + inteligencia
self.__defensa = self.__defensa + defensa
def esta_vivo(self):
return self.vida > 0
def morir(self):
self.vida = 0
print(self.nombre, "ha muerto")
# mecanismo por el que el personaje hace daño
def daño(self, enemigo):
return self.__fuerza - enemigo.defensa
def atacar(self, enemigo):
daño = self.daño(enemigo)
enemigo.vida = enemigo.__vida - daño
print(
self.nombre,
"hizo la cantida de ",
daño,
"puntos de daño a ",
enemigo.nombre,
)
if enemigo.esta_vivo():
print("La vida de ", enemigo.nombre, "es", enemigo.vida)
else:
enemigo.morir()
mi_Personaje = Personaje("MILEI", 1000, 100, 55, 100)
# mi_Personaje.atributos()
mi_Personaje.subir_nivel(1, 2, 0)
# mi_Personaje.atributos()
#mi_Personaje.morir()
mi_Personaje.atributos()
mi_enemigo = Personaje("LA CASTA", 250, 0, 33, 100)
mi_Personaje.atacar(mi_enemigo)
mi_enemigo.atributos()
# print(mi_Personaje.daño(mi_enemigo))
MILEI: -Fuerza : 1001 -Inteligencia : 102 -Defensa : 55 -Vida: 100
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-9-e634c5327466> in <cell line: 62>() 60 mi_Personaje.atributos() 61 mi_enemigo = Personaje("LA CASTA", 250, 0, 33, 100) ---> 62 mi_Personaje.atacar(mi_enemigo) 63 mi_enemigo.atributos() 64 <ipython-input-9-e634c5327466> in atacar(self, enemigo) 36 37 def atacar(self, enemigo): ---> 38 daño = self.daño(enemigo) 39 enemigo.vida = enemigo.__vida - daño 40 print( <ipython-input-9-e634c5327466> in daño(self, enemigo) 33 34 def daño(self, enemigo): ---> 35 return self.__fuerza - enemigo.defensa 36 37 def atacar(self, enemigo): AttributeError: 'Personaje' object has no attribute 'defensa'
In [ ]: