English Version            Русская версия

 [ Разделы сервера ]  [ Карта сервера ]  [ Новости сервера ] [ Обратная связь ]



Одна ячейка существует; она находится в массиве visited. Мы можем выполнить цикл while до тех пор, пока переменная cellsVisited равна totalCells (строка 13). Когда cellsVisited равна totalCells, лабиринт завершен. В строке 14 мы создаем ссылку на объект, который представляет текущую ячейку. Строки 15-51 выполняют шаг 5 из вышеописанного алгоритма: создают массив neighbors. Затем мы проверяем направления west, north, east, и south текущей ячейки для ячеек, которые еще не были посещены. Если мы находим одну подходящую ячейку, мы добавляем ее к массиву neighbors. Когда она добавлена в массив neighbors, мы сохраняем строки с именами стены в каждой ячейке, которая была бы сломана, если бы мы выбрали для посещения эту ячейку. Например, для соседа на востоке мы храним строку значений «east» и «west». Это означает, если мы выбираем для посещения эту ячейку, то мы ломаем восточную стену в текущей ячейке и западную стену в соседней ячейке. Внешне это та же стена, но в коде каждой ячейки содержится информация о ее собственных стенах. В строке 53 мы начинаем шаг 6. Если массив neighbors не пуст, то мы случайным образом выбираем соседа (строка 54); в противном случае, мы отступаем на шаг в массиве visitedList (строки 70-73). Наконец, когда случайный сосед выбран, мы выполняем шаги 7 и 8 из алгоритма выше, а также должны сделать следующее: 1. Создать объект для этой соседней ячейки. 2. Ломаем стены между текущей ячейкой и соседней ячейкой. 3. Увеличиваем на 1 переменную cellsVisited. 4. Назначаем соседнюю ячейку текущей ячейкой. Это все сделано в строках 54-69. Как упоминалось выше, если в массиве neighbors не было элементов, то мы перемещаемся к строкам 70-73, где мы отступаем к предыдущей ячейке. Я надеюсь, вы согласитесь, что, несмотря на длину скрипта, он вовсе не сложен, правда? Визуальная реализация совершенного лабиринта Мы не собираемся препарировать код ActionScript, находящийся в слое Implementation. Однако, я кратко опишу, что он делает
Hosted by uCoz