80 lines
2.0 KiB
Python
80 lines
2.0 KiB
Python
# Ejercicio 1
|
|
class Persona():
|
|
def __init__(self, vida, posicion, velocidad):
|
|
self._vida = vida
|
|
self._posicion = posicion
|
|
self._velocidad = velocidad
|
|
|
|
def recibir_ataque(self, ataque):
|
|
if (self._vida <= ataque):
|
|
self._vida = 0
|
|
print("La vida de la persona llego a 0")
|
|
else:
|
|
self._vida -= ataque
|
|
|
|
|
|
def mover(self, direccion):
|
|
if (direccion == "up"):
|
|
self._posicion["y"]+=self._velocidad
|
|
elif (direccion == "down"):
|
|
self._posicion["y"]-=self._velocidad
|
|
elif (direccion == "left"):
|
|
self._posicion["x"]-=self._velocidad
|
|
elif (direccion == "right"):
|
|
self._posicion["x"]+=self._velocidad
|
|
|
|
def state(self):
|
|
return f"vida: {self._vida }, posicion: {self._posicion}, velocidad: {self._velocidad}"
|
|
# Ejercicio2
|
|
class Soldado(Persona):
|
|
|
|
def __init__(self, vida, posicion, velocidad, ataque):
|
|
super().__init__(vida, posicion, velocidad)
|
|
self._ataque = ataque
|
|
|
|
def atacar(self, personaje):
|
|
personaje.recibir_ataque(self._ataque)
|
|
|
|
|
|
#Ejercicio 3
|
|
class Campesino(Persona):
|
|
|
|
def __init__(self, vida, posicion, velocidad, cosecha):
|
|
super().__init__(vida, posicion, velocidad)
|
|
self._cosecha = cosecha
|
|
|
|
def cosechar(self):
|
|
print(f"Cantidad Cosechada {self._cosecha} ")
|
|
|
|
# ejercicio 4. ?? el campesino no puede atacar
|
|
|
|
|
|
|
|
soldado = Soldado(10, {"x": 0, "y":0}, 5, 5 )
|
|
campe = Campesino(10, {"x":0,"y":0}, 2, 50)
|
|
persona = Persona(10, {"x":0, "y":0}, 10)
|
|
|
|
|
|
print("=====Estado Inicial======")
|
|
print(soldado.state())
|
|
print(campe.state())
|
|
print(persona.state())
|
|
|
|
print("=====Campesino muestra cosecha=====")
|
|
campe.cosechar()
|
|
|
|
print("=====Soldado se mueve=====")
|
|
soldado.mover("up")
|
|
soldado.mover("left")
|
|
print(soldado.state())
|
|
|
|
print("=====Soldado ataca 2 veces al campesino y una a la persona=====")
|
|
soldado.atacar(campe)
|
|
soldado.atacar(campe)
|
|
|
|
soldado.atacar(persona)
|
|
|
|
print(campe.state())
|
|
print(persona.state())
|
|
|