Suddenly, new soldiers joined the Umbert’s ranks - has he really got an ace up his sleeve? Lancers presented the fresh forces, which made Sir Ronald’s position increasingly difficult, lancers could attack two soldiers at once with their long spears. Something needed to be done with that…
It seems that the Warrior, Knight, Defender and Vampire are not enough to win the battle. Let's add one more powerful unit type - the Lancer.
Lancer should be the subclass of the Warrior class and should attack in a specific way - when he hits the other unit, he also deals a 50% of the deal damage to the enemy unit, standing behind the firstly assaulted one (enemy defense makes the deal damage value lower - consider this).
The basic parameters of the Lancer:
health = 50
attack = 6
chuck = Warrior() bruce = Warrior() carl = Knight() dave = Warrior() mark = Warrior() bob = Defender() mike = Knight() rog = Warrior() lancelot = Defender() eric = Vampire() adam = Vampire() richard = Defender() ogre = Warrior() freelancer = Lancer() vampire = Vampire() fight(chuck, bruce) == True fight(dave, carl) == False chuck.is_alive == True bruce.is_alive == False carl.is_alive == True dave.is_alive == False fight(carl, mark) == False carl.is_alive == False fight(bob, mike) == False fight(lancelot, rog) == True fight(eric, richard) == False fight(ogre, adam) == True fight(freelancer, vampire) == True freelancer.is_alive == True my_army = Army() my_army.add_units(Defender, 2) my_army.add_units(Vampire, 2) my_army.add_units(Lancer, 4) my_army.add_units(Warrior, 1) enemy_army = Army() enemy_army.add_units(Warrior, 2) enemy_army.add_units(Lancer, 2) enemy_army.add_units(Defender, 2) enemy_army.add_units(Vampire, 3) army_3 = Army() army_3.add_units(Warrior, 1) army_3.add_units(Lancer, 1) army_3.add_units(Defender, 2) army_4 = Army() army_4.add_units(Vampire, 3) army_4.add_units(Warrior, 1) army_4.add_units(Lancer, 2) battle = Battle() battle.fight(my_army, enemy_army) == True battle.fight(army_3, army_4) == False
Input: The warriors and armies.
Output: The result of the battle (True or False).
How it is used: For computer games development.
Precondition: 5 types of units