Разработка программы «хождение по лабиринту», курсовая работа по системному по, страница 3

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

В данном курсовом проекте будем рассматривать односвязные лабиринты, в которых основная цель дойти до конечной локации, при этом кроме стен у игрока нет никаких других препятствий.


1 ПОСТАНОВКА И АНАЛИЗ ЗАДАЧИ

Целью данной курсовой работы является разработка программы «Хождение по лабиринту».

Будем рассматривать плоские (двумерные) лабиринты. Кроме того, все помещения (локации) будут квадратными, а сам лабиринт – прямоугольным. У каждого такого помещения есть не более четырех соседних, и в каждое соседнее помещение может вести проход (а может и не вести – в этом случае там будет «стена»). Также введем следующие ограничения:

1.  Лабиринт не должен содержать залов, т.е. групп локаций размером 2х2 и более, между которыми нет стен, а также отдельно стоящих стенок.

2.  Из любой локации лабиринта можно попасть в любую другую (т.е. не существует замкнутых областей, отделенных от остальных частей лабиринта).

3.  Путь от начальной локации (входа) до конечной локации (выхода) должен быть единственным.

Необходимо реализовать программу-игру, в которой можно ходить по плоским прямоугольным лабиринтам. Необходимо также реализовать алгоритм генерирования лабиринта, удовлетворяющего перечисленным условиям произвольного размера, а также функции сохранения и загрузки лабиринтов. Для удобства пользователя необходима также возможность изменения размеров локаций.

При сохранении необходимо сохранять не только саму геометрию лабиринта, начальную и конечную локацию, но и текущее положение игрока. Это позволит продолжить прохождение лабиринта в дальнейшем с того места где игрок остановился на момент сохранения.


2 ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ И АЛГОРИТМОВ РАБОТЫ

Структура программы содержит три основных окна:

1.  Главное окно, в котором отображается лабиринт, и непосредственно происходит игровой процесс;