unit1 = Defender()
unit2 = Rookie()
fight(unit1, unit2)
unit_1.health
class Warrior:
def __init__(self):
self.health=50
self.attack=5
self.defense=0
@property
def is_alive(self):
return self.health>0
class Knight(Warrior):
def __init__(self):
super().__init__()
self.attack=7
class Defender(Warrior):
def __init__(self):
super().__init__()
self.defense=2
self.attack=3
self.health=60
def fight(u1, u2):
while u1.is_alive and u2.is_alive:
u2.health-=u1.attack-u2.defense
if not u2.is_alive: return True
u1.health-=u2.attack-u1.defense
if not u1.is_alive: return False
class Army:
def __init__(self):
self.units=[]
@property
def is_alive(self):
return len(self.units)>0
def add_units(self,units,count):
while count>0:
self.units.append(units())
count-=1
class Battle:
def fight(self,army1,army2):
u1=army1.units[0];u2=army2.units[0]
while army1.is_alive and army2.is_alive:
if not fight(u1,u2):
army1.units.remove(u1)
if army1.is_alive: u1=army1.units[0]
else:
army2.units.remove(u2)
if army2.is_alive: u2=army2.units[0]
return army1.is_alive
Created at: 2019/09/09 17:25; Updated at: 2022/01/19 10:27
The question is resolved.