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
CheckiO Extensions allow you to use local files to solve missions. More info in a blog post.
In order to install CheckiO client you'll need installed Python (version at least 3.8)
Install CheckiO Client first:
pip3 install checkio_client
Configure your tool
checkio --domain=py config --key=
Sync solutions into your local folder
(in beta testing) Launch local server so your browser can use it and sync solution between local file end extension on the fly. (doesn't work for safari)
checkio serv -d
Alternatevly, you can install Chrome extension or FF addon
checkio install-plugin --ff
checkio install-plugin --chromium