Молодежь и наука - третье тысячелетие: Материалы студенческой научно-практической конференции с международным участием

285 Таким образом, в памяти компьютера он состоит из нулей (стена) и единиц (проход). В каждой локации лабиринта нас интересует информация о сте- нах/проходах. В локации может существовать от одной до четырех стен (свер- ху, снизу, справа, слева). Если значение поля равно нулю, значит соответству- ющая стена существует, иначе – нет. Обратим внимание, что правая стена локации, находящейся справа от нее, – это одна и та же стена, то же самое справедливо для всех стен. Поэтому не нужно хранить в каждой записи инфор- мацию обо всех четырех стенах, достаточно выбрать две: горизонтальную (к примеру, верхнюю) и вертикальную (левую). Сам лабиринт будет представ- лять собой двумерный массив. Нельзя забывать, что лабиринт по краям должен быть ограничен стеной. Надо следить, чтобы значения поля верхней стены у всех локаций, расположенных в самом верху лабиринта, и значение поля ле- вой стены у всех локаций, расположенных по левому его краю, были равны ну- лю. Чтобы установить стены лабиринта снизу и справа добавим дополнитель- ные ряды и установим в значение полей верхней и левой стены ноль. В дальнейшем потребуется процедура загрузки и сохранения лабиринта. Генерация лабиринта будет записана в файле. В первой строке файла за- пишем два числа - ширину и высоту лабиринта. Затем в файле последует столь- ко же строк, сколько локаций в лабиринте. В любой из этих строк будет хра- ниться пара чисел, каждое из которых равно либо нулю, либо единице. Первое число показывает наличие стены сверху, второе наличие стены слева в текущей локации. Локации хранятся последовательно, строка за строкой. Создавая программу для генерации лабиринта, мы изучили четыре алго- ритма: алгоритм Прима; алгоритм Краскала; алгоритм волновой трассировки; алгоритм поиска в глубину по графам. Разработана структура программы визуализации генерации и прохожде- ния лабиринта (рис.2). Планируется, что программа будет содержать инфор- мацию об истории лабиринтов, описание некоторых алгоритмов генерации лабиринта, визуализацию генерации и прохождения лабиринтов. Согласно структуре программы разработаны формы с кнопками, например, при нажатии кнопок «Описание алгоритмов» или «Выбор алгоритма» происходит переход в формы «Описание алгоритмов» или «Выбор алгоритма генерации лабирин- та». Таким образом, до определения параметров генерируемого лабиринта программа предоставляет возможность познакомиться с теоретической осно- вой создания лабиринтов, с некоторыми алгоритмами их генерации, а также с историей лабиринтов. Для написания программы выбран язык программирования С#. В языке С# компонентно-ориентированный подход к программированию, способствующий меньшей машинно-архитектурной зависимости результирующего программно- го кода, гибкости, переносимости и легкости повторного использования про- грамм. Язык C# имеет унифицированную систему типизации, а так же ориента- цию на безопасность кода.

RkJQdWJsaXNoZXIy ODQ5NTQ=