MazeGame

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск

К основной странице курса

Общее описание

MazeGame - программа, строящая лабиринт для компьютерной игры.

Лабиринт - это множество комнат. Любая комната знает о своих соседях. Соседями могут быть другие комнаты, стены и двери.

Классы Room, Door и Wall являются потомками интерфейса MapSite - компонента лабиринта. В нем - только одна операция - Enter() - войти. Кроме того, он реализует интерфейс клонирования, что понадобится нам в одном из примеров.

У каждой комнаты - 4 стороны, задаваемые направлениями

enum Direction { North, South, East, West };

Каждая комната Room имеет номер и ссылки на другие объекты MapSite по всем четыре направлениям.

Каждая стена Wall характеризуется двумя комнатами, находящимися по разные стороны от двери, а также флагом, открыта ли дверь, определяющим. можно ли в нее войти. Входя в дверь, мы входим в соседнюю комнату.

Класс лабиринта Maze может добавлять новые комнаты к внутреннему списку и имеет функцию RoomNo определения комнаты по ее номеру.

Наконец, класс MazeGame создает и возвращает лабиринт вызовом функции CreateMaze().

Функция CreateMaze() различается для четырех рассматриваемых далее паттернов: