Игра Roguelike. Для курса по Software Design.
Александр Хворов
Антон Елисеев
Влад Танков
Разрабатываемая система - игра в жанре Roguelike. Система является одиночной игрой, подразумевается использование её одним игроком. Требованием к системе пользователя является наличие Java Virtual Machine версии не ниже 1.8.
Жанр подразумевает генерацию карты случайным образом, наличие врагов с несколькими стратегиями поведения и персонажа игрока, управляемого с клавиатуры. Режим игры - пошаговый, однопользовательский. При запуске можно выбрать загрузку сохранения или начало новой игры. При загрузке загружается всегда только последнее сохранение.
Подразумевается наличие клавиатуры и устройства вывода. Необходимо наличие Java Virtual Machine версии не ниже 1.8.
-
Для каждого уровня генерируется карта с фиксированным количеством враждебных NPC. Символ
#
обозначает стену - область карты, через которую игрок пройти не может. Гарантируется, что есть путь от персонажа до фыхода из лабиринта. Цель игрока на каждом уровне - дойти до выхода из лабиринта. -
Игрок управляет персонажем с клавиатуры
Персонаж облядает при этом следующими характеристиками- Координаты - позиция игрока на карте
- Health - здоровье игрока, игра продолжается пока оно не равно 0
- Damage - урон, который персонаж наносит враждебным NPC
- Armors - броня персонажа, пока есть броня здоровье не тратится
- Level - уровень героя
- Knives - элемент инвнтаря, которым можно атакавать враждебных NPC
-
После каждого хода игрока совершают ход NPC, в области видимости которых находится персонаж. Существуют следующие виды враждебных NPC
C
- coward enemy, hp=5, dmg=2, стараются атаковать сзадиB
- brave enemy, hp=5, dmg=1, нападают спередиO
- not acting strategy, hp=5, dmg=2 стоят на месте и атакуют при столкновении
Предпологается один пользователь системы - человек, играющий в игру. Таким образом есть один Actor, который взаимодействует с системой и реализует ее различные случаи использования.
Приложение состоит из глобальных компонет, которые отвечают за ввод вывод и саму игровую систему, при этом каждая из них включает обособленные компоненты, отвечающие за считывание ввода, вывода на экран, управления персонажем, обновление игрового мира на основе действия персонажа и генерацию карты, на основе текущего состояния мира.
Более детально архитектуру можно видеть на диаграмме классов
ссылка на Д Классов
Последовательность актов систмы во времени зависит от основного актора,
игрока. После каждого его действия игровой мир делает свой ход и
отображает то, что произошло в резултате.
Изменение во времени отображается на диаграмме последовательностей.
Программа может находится в следующих состояниях: главное меню или основной
режим уровня, в главном меню выбирается уровень из доступных,
после, генерируется карта данного уровня. Персонаж делает ход,
после чего он может проиграть, выиграть либо ни то ни другое.
В первом случае программа переходит в состояние основного меню,
в котором остаются все те же уровни, что и были. Во втором случае
добавляются новые уровни, и в последнам случае состояние не меняется и
программа в ожидании следующего хода.