Army Battles Army Battles
Moderate
EN Russian

Убедившись, что силы равны, каждый из них принял единственно возможное решение — позвать подмогу. Умберт послал за подкреплением кучера на лошади, сэр Рональд использовал фамильный рог, звук которого не раз звучал в жарких битвах. Замок рыцаря находился достаточно близко, чтобы там услышали призыв к оружию. Где находились сообщники Умберта — было неизвестно, и это чертовски мешало продумать стратегию для грядущей битвы.
К счастью, подкрепление для обоих сторон подоспело практически одновременно. Теперь это был больше, чем вопрос чести девушки — возникшую ситуацию уже поздно было решать миром. Одна из двух армий должна быть уничтожена.

В прошлой миссии — Warriors — вы научились устраивать дуэли между 2 отдельными воинами. Отличная работа! Но давайте перейдём к чему-то более эпичному — к армиям! В этой миссии ваша задача — добавить к уже существующим классам и функциям новые: Army, который будет обладать методом add_units(), позволяющим добавлять выбранное количество воинов в армию, а также класс Battle() с функцией fight(), которая будет устраивать сражения и определять сильнейшую армию.
Сражения между армиями происходят по следующему принципу:
• сперва проводится дуэль между первым воином первой армии и первым воином второй
• как только один из них погибает — в дуэль вступает следующий воин из той армии, которая потеряла бойца, а выживший воин со своим текущим здоровьем продолжает сражаться
• так продолжается до тех пор, пока все воины одной из армий не умрут. В этом случае функция battle() возвращает True, если первая армия выиграла или False, если вторая оказалась сильнее.

example

Пример:

chuck = Warrior()
bruce = Warrior()
carl = Knight()
dave = Warrior()
mark = Warrior()

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

my_army = Army()
my_army.add_units(Knight, 3)
    
enemy_army = Army()
enemy_army.add_units(Warrior, 3)

army_3 = Army()
army_3.add_units(Warrior,...

Выходные данные: результат битвы (True или False).

Как это используется: Для разработки компьютерных игр.

Предусловие: 2 типа солдат

You should be an authorized user in order to see the full description and start solving this mission.