Реализация проекта
В программе содержится три объекта – классы war, country, army. На форме первоначально отображаются две кнопки отображаются, нажатие одной из них повлечет к закрытию проекта, другой – появлению новых визуальных объектов. Имеются переменные, хранящие информацию о текущем и первоначальном числе дивизий и бригад (резервов) обеих сторон, своеобразный уровень паники жителей Германии (uslger), который при превышении определенного значения заставит подписать документ о безоговорочной капитуляции; логические переменные, соответствующие определенным военно-политическим деятелям Германии (true – этот человек жив, false – убит).
Рассмотрим используемые процедуры:
Не начинать войну (Button2click): выведет сообщение, что военные действия между СССР и Германией не велись.
Начать войну (Button1click): спрячет имеющиеся на экране кнопки и сделает видимыми окно текущей статистики, панели содержащие действия доступные для Германии и СССР
Атаковать СССР (Button5click Button7click) присваивает глобальной переменной whoattack значение false, открывает диалоговую панель, на которой выставляем параметры атакующей и обороняющейся стороны
Атаковать Германию (Button7click) присваивает глобальной переменной whoattack значение true, открывает диалоговую панель, на которой выставляем параметры атакующей и обороняющейся стороны
Капитуляция (Button3click) скрывает все объекты, имеющиеся на форме на текущий момент, и выводит результаты войны в виде таблицы
Организовать покушение (Buton4click) открывает панель с возможными объектами для покушения
Гитлера .. Йодля (Button7[11,13,14,15,16]click) определяет является ли покушение удачным, если да – сообщает о гибели деятеля, убирает из списка убитого, проверяет не превышает ли уровень паники жителей Германии предела, если да – скрывает все объекты, имеющиеся на форме на текущий момент, и выводит результаты войны в виде таблицы
Защищаться (Button8click) определяет, какая из сторон атакует, а какая – обороняется, определяет исход, рассчитывает потери атакующих и защищающихся, учитывает это, уменьшая (если это надо) число текущих дивизий и бригад каждой страны, пересчитывает число текущих стратегических точек у каждой страны, проверяет не закончились ли войска или стратегические точки у Германии, если да – скрывает все объекты, имеющиеся на форме на текущий момент, и выводит результаты войны в виде таблицы, если нет – закрывает панель диалога
Отступить (Button6click) ) определяет, какая из сторон атакует, а какая – обороняется, определяет исход, рассчитывает потери атакующих и защищающихся, учитывает это, уменьшая (если это надо) число текущих дивизий и бригад каждой страны, пересчитывает число текущих стратегических точек у каждой страны, проверяет не закончились ли войска или стратегические точки у Германии, если да – скрывает все объекты, имеющиеся на форме на текущий момент, и выводит результаты войны в виде таблицы, если нет – закрывает панель диалога
Задействовать резерв (CheckBox1checked) параметр, активность которого учитывается при подсчете потерь и исходе сражения
Программный код приведен в приложении.
Рисунок 2. Блок – схема процедуры Button6Click (отступать)