-
cant check were is a problem
From: https://py.checkio.org/mission/the-defenders/solve/
In 8 test is a fight with rookie and i dont know why, but my defender lose health after fight with him, i even cant check where is a problem coz i dont know what is rookie is, it try create my own rookie but it do nothing. Please help.
HTTP_USER_AGENT:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36 class Warrior: damage=5 health=50 is_alive=True def __init__(self): self.damage=5 self.health=50 def damaged_on(self,enemy_damage): self.health-=enemy_damage if self.health<=0: self.is_alive=False class Rookie(Warrior): def __init__(self): self.damage=0 self.health=1 class Knight(Warrior): def __init__(self): self.damage=7 self.health=50 class Defender(Warrior): def __init__(self): self.damage=3 self.health=60 self.defense=2 def damaged_on(self,enemy_damage): self.health-=(0,enemy_damage-self.defense)[enemy_damage and enemy_damage>self.defense] print(self.health) if self.health<=0: self.is_alive=False class Rookie(Warrior): def __init__(self): self.damage=0 class Army: def __init__(self): self.arrayWithUnits=[] def add_units(self,type,count): for i in range(count): self.arrayWithUnits.append(type()) def pop(self): if len(self.arrayWithUnits)>0: return self.arrayWithUnits.pop() else: return False class Battle: def fight(self,army1,army2): fighter1=army1.pop() fighter2=army2.pop() if not fighter2: return True if not fighter1: return False while True: if(fight(fighter1,fighter2)): fighter2=army2.pop() if not fighter2: return True else: fighter1=army1.pop() if not fighter1: return False def round(f1,f2): f2.damaged_on(f1.damage) if f2.is_alive: f1.damaged_on(f2.damage) def fight(f1,f2): while True: if not f1.health:return False if not f2.health:return True round(f1,f2) if not f2.is_alive: return True elif not f1.is_alive: return False
Created at: 2019/02/19 07:59; Updated at: 2019/09/09 17:21
The question is resolved.
The question is resolved.