Лекция 28. Практика. Подготовка к письменному экзамену Красс Александр СПбГУ ИТМО, 2008
W AAA R!!! На землях королевства снова трубят рога, дружинники торопятся на места сборов, наёмники ухмыляясь точат мечи…. И всё в том же духе. Для Вас снова есть работа! Вы должны написать эмулятор сражения двух отрядов в замкнутом помещении. В королевстве очень много подземных ходов…
Описание задания У Вас есть два отряда. Каждый состоит произвольного числа воинов. Воину соответствует объект класса (DrunkKnight, HappyBarbarian, SmilingDragon, AngryArcher – как минимум должны быть эти классы). Воин может быть ближнего боя или с удалённой атакой. У каждого типа воинов есть четыре параметра: ближний бой, стрелковая атака, защита и жизнь (целые неотрицательные числа). 3
Схема боя Каждый отряд выстраивается в шеренгу, поэтому в каждый момент времени могут сражаться только два воина, стоящие друг против друга. Они ведут ближний бой. Им могут помогать воины, со стрелковой атакой отличной от нуля и стоящие непосредственно после сражающихся в своих шеренгах. Схема удара проста: считается, что все атаки наносятся одновременно. В конце должен остаться только один отряд. 4
Ваша задача Реализуйте эту систему боя. Все данные об отрядах считываются из файла input.txt. Результат сражения записывается в файл output.txt. 5
Требования Использовать много-много виртуальных функций, наследования и кучу классов. 6