Grupo de Python
Publico Grupo
Publico Grupo
Active 2 semanas
Este grupo esta relacionado con nuestro curso profesional de Python. Aquí se comparten temas generales... View more
Publico Grupo
Responder a: Problema con la property. Módulo 8- Ejercicios propuestos, ejercicio 11
Hola Cesar muchas gracias por la ayuda ya logré que funcione.
Saludos
Me quedó así
class Guerrero:
def __init__(self,vida=100,estado_arma=100,estado = "ataque",estado_escudo = 100):
self.vida = vida
self.estado_arma = estado_arma
self.estado = estado
self.estado_escudo = estado_escudo
@property
def estado(self):
return self._estado
@estado.setter
def estado(self, cambio):
if cambio == "ataque" or cambio == "defensa":
if cambio == "defensa" and self.estado_escudo ==0:
raise ValueError("No se puede cambiar a defensa, Escudo=0")
self._estado = cambio
else: raise ValueError("El estado no existe")
@property
def is_alive(self):
if self.vida > 0:
return True
else: return False
def atacar(self,guerrero):
if self.is_alive == True:
if self.estado == "ataque":
if self.estado_arma >= 2 and guerrero.estado == "ataque":
guerrero.vida = guerrero.vida - 20
self.estado_arma = self.estado_arma - 2
elif self.estado_arma >= 2 and guerrero.estado == "defensa":
guerrero.estado_escudo = guerrero.estado_escudo - 5
self.estado_arma = self.estado_arma - 2
else:
print("El arma no funciona, Arma=",self.estado_arma)
else:
print("El guerrero tiene que estar en ataque")
else:
print("El guerrero no está vivo")w = Guerrero()
'''w.estado_escudo = 0
w.estado = "defensa"
print(w.estado)'''#print(w.is_alive)
w2 = Guerrero()
'''w.atacar(w2)
print("La vida de w2 es",w2.vida)
print("El estado de arma de w es",w.estado_arma)''''''w.estado_arma = 1
w.atacar(w2)''''''w2.estado = "defensa"
w.atacar(w2)
print("el escudo de w2 es",w2.estado_escudo)
print("el estado del arma de w es",w.estado_arma)''''''w.estado = "defensa"
w.atacar(w2)
print("la vida de w2 es",w2.vida)''''''w.vida = 0
w.atacar(w2)
print("La vida de w2 es",w2.vida)'''