Требования к математическому обеспечению
Функции по обработке координат местонахождения танка по отношению к остальным объектам на поле (пулям, барьерам и т.д.)
Требования к информационному обеспечению
Для работы программы используется база данных, содержащая графические изображения в формате .gif для отображения каждого объекта на игровом поле. В системе присутствует файл, в который сохраняется таблица рекордов.
Требования к лингвистическому обеспечению
Система имеет английский интерфейс и справочную документацию на русском языке. Мультиязычная версия отсутствует
Требования к программному обеспечению
Программа работает под ОС Windows следующих версий: Windows 98, Windows XP, Windows Vista, Windows 7.
Требования к программному обеспечению
Для работы программы требуется 40 Мб свободной оперативной памяти, но рекомендуется 50 Мб.
Требуется 20 Мб свободного дискового пространства для файлов системы.
Для управления главным меню требуется манипулятор мышь или клавиатура, для игрового процесса требуется только клавиатура.
Объектно-ориентированный анализ предметной области
Игровое поле предоставляет игру вид сверху на происходящее на поле. Поле имеет свои границы, за пределы которых танк заезжать не может, а также фон, на котором отображаются все объекты. Фон можно выбрать в разделе “Options” главного меню. В игровое поле агрегируются все объекты, находящиеся на нем: танки противника, танк игрока, барьеры и пули. Также игровое поле ведет подсчет очков набранных игроком за все время игры и контролирует начало игры и её конец.
Объект танка игрока имеет свою собственную картинку и перемещается по полю в соответствии с нажатой пользователем клавишей. Выстрел также производится по нажатию клавиши “Space”.
Объект танка противника имеет собственную картинку и передвигается по полю в соответствии с выбранным направлением. Перед каждым шагом танк делает запрос у игрового поля, нет ли впереди препятствий и если препятствия отсутствуют, танк делает шаг. Если танк видит впереди тан игрока, он производит по нему выстрел.
Оба класса наследуются от абстрактного базового класса BasicPanzer, который содержит основный свойства объекта: координаты, направление движение, существование, произведение выстрела и т.д.
Базовый класс для барьера BasicBasic содержит в себе поля для координат, картинки, флаг существования и флаг уничтожимости. От него наследуются классы WaterBarrier (вода) и GroundBarrier (стена).
Класс пули Bullet содержит поля координаты, направления, изображения, флаг существования. При движении пули игровое поле проверяет, нет ли впереди препятствия, если пуля пересекается с уничтожимым объектом, то уничтожается и пуля, и объект, в который она попадает.
Кроме этого программа содержит классы форм, в которых содержится информация о программе и разработчике, справочная информация, таблица рекордов, а также структуры сообщений, с помощью которых выполняются события в программе.
Описание классов
Program:
Main – основной метод
FormRecords
Button1 – кнопка закрытия окна
Label1[5] – таблица с записями имен и очков
Records[5] – структуры с именами и очками
Score – набранное количество очков
Textbox1 – поле для ввода имени
Button1_Click – обработчик события нажатия кнопки
FormRecords – считывание данных из файла
Textbox1_TexChange - изменение текстового поля
WritingFile – записывание таблицы рекордов в файл
BasicBarrier
BarrierImage – изображение
Exist – флаг существования
X - координата
Y – координата
BarrierExisting – обработчик события уничтожения объекта
OnExisting – проверка наличия события
Show – проверка наличия события
Barriers_ShowPicture – обработчик события отрисовки, передача картинки и координат в форму для отображения
WaterBarrier
WaterBarrier – конструктор
GroundBarrier
GroundBarrier – конструктор
BasicPanzer
Direction - направление
Exist – флаг существование
OnShooting –флаг перезарядки
Panzer – изображение
Permission – разрешение на перемещение
Steps – пройденные шаги
X – координата
Y – координата
BasicPanzer – конструктор
OnTellCoords – проверка на существование события
Panzer_TellCoords – обработчик события отрисовки в форме, передача в сообщении координат и картинки
Panzer
CheckMoving – проверка на препятствия впереди танка
ChooseDirection – выбор направления движения
OnExisting – проверка на существования события
Panzer – конструктор
Panzer_Existing – обработчик события, танк возрождается в специальной зоне ,если там ничего нет
Shooting – проверка на выстрел, если танк игрока находится на траектории выстрела, танк стреляет
PlayerPanzer
Defention – количество брони
PlayerPanzer – конструктор
CheckMoving – проверка на препятствия впереди танка
ExistingShoot – событие выстрела
OnExisting – проверка на существование события
Panzer_Existing – обработчик сообщения попадания по танку, проверяется наличие брони, уменьшается её значение, если она все еще существует
OnDefend – проверка на существование события
Panzer_Defending – обработка события, отправляется сообщение о броне
Bullet
BulletImage – изображение пули
Direction – направление движения
Exist – флаг существования
X - координата
Y - координата
Bullet – конструктор
Engaging – обработчик события выстрела
Drawing – определения координат отрисовки
Moving – изменение координат в соответствии с направлением
AboutCoords - проверка на существование события
BulletCoords_Event – событие отрисовки, передача координат в форму
Form1
Background – фон
BarriersCoords – информация о координатах барьеров
Count – набранные очки
GroundBarriers – преграды
WaterBarriers – преграды
PlayerPanzer - танк игрока
Panzers – танки противника
MassiveBullets – пули
MassivPictures – массив с картинками для отрисовки
Form1_KeyDown – обработчик события нажатия клавиши
Drawing – отрисовка объектов на поле
ClearPlayground – очистка поля
CheckShooting – проверка полета пули игрока
CheckShootingGLaDOS – проверка траектории полета пуль противника
