Files
parcial-python/main.py

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())