LodeRunner
Постановка задачи


Общая постановка задачи:
------------------------
Данное приложение "LodeRunner" создается и будет предназначено для игровых
целей для WEB. Данное игровое приложение - однопользовательское т.е.
расчитывается на одного человека, который будет играть против компьютера, 
управляя персонажем в игре. Данное приложение планируется реализовать на языке
Java и реализовать в виде Java аплета, которое можно поместить в Internet
и сделать доступным для игры любому человеку.

Общее описание игры:
--------------------
"LodeRunner" - это аркадная игра, суть которой заключается в том, что игрок
управляет маленьким человечком, который должен бегать по уровню (состоящему
из этажей и лесенок, соединяющих эти этажи) и собирать
ящики. Если игрок собирает все ящики, то появляется выход, в который игрок
должен попасть, чтобы пройти на следующий уровень. Сложность игры заключается
в том, что игроку мешают другие человечки, которыми управляет компьютер, и
которые пытаются помешать игроку, преследуя его. Столкновение игрока с данным
человечком ведет к смерти игрока и потери жизни.

Детальное описание игры:
------------------------

Главный герой: Маленький человечек, который способен передвигаться по уровню
вправо/влево (если он находится на этаже), а также вверх/вниз (если находится
на лестнице). Главный герой управляется при помощи клавиатуры (Клавиши
уточняются в процессе написания игры. Возможно также переопределение клавиш
в самой игре). Главный герой, кроме того, что он может бегать, также способен
собирать ящики (см. описание ящиков), а также способен рыть ямы (перед
собой), правда только в том случае, если находится на этаже, и клетка
перед ним построена из кирпича (см. также описание уровня). 

Враги: Это человечки, которыми управляет компьютер. Передвигаются по уровню
по таким же правилам, как и главный герой. Обычно, в самом начале уровня
находятся на разных этажах, чтобы не создавать толпы. С течением времени
враги начинают охотится за главным героем, пускаясь за ним в погоню. Так
как врагами управляет копьютер, то в программе должен присутствовать
технический интеллект, управляющий данными человечками (чем сложнее
уровень, тем умнее должны быть враги). Также, чем сложнее уровень, тем
больше врагов может быть.

Уровень: Как было сказано ранее, уровень представляет из себя многоэтажный
лабиринт или можно сказать игровую комнату, где этажи соединены лестницами.
Каждый участок этажа построен из какого-то материала. Разновидностей материала
два - кирпич (можно рыть ямы) и бетон (нельзя рыть ямы). Вырытая яма в 
лабиринте через некоторое время зарастает и если игрок или враг в момент
зарастания ямы находится в ней, то он погибает. Если погибает враг, то он
восстанавливается в игре, падая с верхнего края экрана. 

Ящики: По всему уровню раскиданы ящики (положение ящиков, игрока и
врагов задается в файле определения уровня), которые могут быть собраны
как главным героем, так и врагами (в случае, если ящик собирает враг,
то он обязан этот ящик положить обратно, в доступное для главного героя место.
А также, если в случае смерти врага в зарастающей яме, если он имеет ящик, то
этот ящик появляется над ямой). Ящик собранный героем, защитывается на его
счет и в тот момент, когда все ящики собраны, появляется новая лестница,
ведущая на вершину экрана, забравшись по которой игрок проходит уровень.
Враги не могут переносить более одного ящика.

Очки: В игре ведется подсчет очков. Очки начисляются за каждый собранный
ящик, а также за время прохождения уровня (чем меньше время прохождения - 
тем больше очков). Также в игре ведется учет результатов, т.е. Top участников.
Конкретная формула подсчета очков может быть вычисленна в процессе проектирования
программы.


Типы должностей и разделение труда:
-----------------------------------

При разработке данного игрового приложения потребуются люди со следующими
навыками (специализацией):
* Руководитель проекта - ответственность за организацию и руководство проектом
* Главный программист - проектировка структуры приложения, реализация скелета приложения
* Программист(ы) - реализация приложения на языке Java
* Проектировщик уровней - разработка и тестирование уровней
* Дизайнер - разработка всех графических элементов в игре и разработка общего вида приложения
* Тестер(ы) - тестирование данного приложение
* Составитель документации - создание и поддержка документации, а также создание всего необходимого материала для презентации