Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Army Battles by flowerinapot
# Taken from mission The Warriors
class Warrior:
def __init__(self, health = 50, attack = 5):
self.health = health
self.attack = attack
@property
def is_alive(self):
return self.health>0
class Knight(Warrior):
def __init__(self, health = 50, attack = 7):
super().__init__(health, attack)
def fight(unit_1, unit_2):
while unit_1.is_alive and unit_2.is_alive:
x = unit_2.is_alive
unit_2.health -= unit_1.attack
unit_1.health -= unit_2.attack if unit_2.is_alive else 0
return unit_1.is_alive
class Army:
def __init__(self):
self.group = []
def add_units(self, unit, count):
self.group += [unit() for _ in range(count)]
class Battle:
def fight(self, army_1, army_2):
while army_1.group and army_2.group:
if fight(army_1.group[0], army_2.group[0]):
army_2.group.pop(0)
else:
army_1.group.pop(0)
if army_1.group:
return True
else:
return False
July 7, 2023