Пример.

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

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

Предположим, что помещения здания соединяются между собой так, как показано на рис.1.

Рис. 1. Пример плана помещений

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

Рис. 2. Информация о плане здания, представленном на рис. 3

Файл с данными считывается и помещается в список, исходя из номера помещения (рис.3). Spi — указатель на начало списка.

Затем файл считывается еще раз и с учетом наличия дверей генерируется связь помещений (рис. 4).

Рис. 4. Начало списка помещений после второго прочтения

Звездочкой помечены ссылки, равные Nil.

Перемещение игрока в лабиринте осуществляется путем выбора им одного из вариантов направления движения. Игрок вводит номер комнаты, с которой начинается путешествие. Если лакого помещения в лабиринте нет, то об этом выдается сообщение. Если такая комната существует, то играющему предлагается выбрать направление движения, которое можно определить, воспользовавшись подсказкой. Помощь заключается в том, что на экран высвечивается вопрос по теме курса "Алгоритмические языки и программирование" и 4 варианта ответа. Правильный ответ указывает направление дальнейшего движения. Неправильный ответ дает неверное направление или вызывает сообщение о невозможности передвижения. Вывод подсказки на экран и выбор правильного ответа осуществляются с помощью специальной процедуры, которая обращается к файлу на диске. Файл-подсказку сделаем типизированным. Количество компонентов файла равно количеству помещений в здании-лабиринте. Номер компонента файла соответствует номеру помещения. Правильный ответ расположен в положении, определяющем верное направление. Компонент типизированного файла имеет тип "запись", где отводится поле для хранения вопроса по теме курса и поле - массив предлагаемых ответов.

Запись:

· Поле вопроса.

· Поле 4-х ответов.

Признаком окончания игры является ссылка на помещение с номером 999.

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