Создание Трехмерный лабиринт на Java

Цель


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

Алгоритм


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

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

Вопрос


Насколько я понимаю, я думаю, что у меня есть основная идея алгоритма, но я не знаю, как ее кодировать. Может ли кто-нибудь придумать для этого Java-алгоритм, который относительно решает задачу быстро?

Решение не должно использовать внешние библиотеки.

5
задан templatetypedef 31 August 2011 в 00:43
поделиться