Мой вопрос в том, как я могу создать случайно созданный лабиринт в Java? Я знаю основную схему создания DFS для создания лабиринта, но мне трудно его реализовать. В моей программе лабиринт хранится в 2D-массиве, и добавление 1 к массиву приводит к исключению массива вне пределов. Как я могу избежать этого? Я не хочу делать очень сложный лабиринт, просто простой лабиринт. Хотя я начал создавать код, я не уверен, как заставить его работать.Создание лабиринта на Java?
псевдокод для метода ДФС является:
create a CellStack (LIFO) to hold a list of cell locations
set TotalCells = number of cells in grid
choose a cell at random and call it CurrentCell
set VisitedCells = 1
while VisitedCells < TotalCells
find all neighbors of CurrentCell with all walls intact
if one or more found
choose one at random
knock down the wall between it and CurrentCell
push CurrentCell location on the CellStack
make the new cell CurrentCell
add 1 to VisitedCells
else
pop the most recent cell entry off the CellStack
make it CurrentCell
endIf
endWhile
Я не понимая, как вы можете узнать, если ваши соседи имеют свои стены нетронутыми и как уничтожить их. Может ли кто-нибудь дать мне некоторое представление об этой программе. Очень признателен.
вы можете использовать 'ArrayList' вместо' Array', а затем они будут расти, чтобы приспособить любой размер вам нужно. – twain249
Вы можете построить лабиринт, сбив стены или добавив их. Вероятно, самые интересные были бы построены, если бы вы сначала создали базовый лабиринт, а затем случайно перемещали стены, а затем проверяли, изменило ли это лабиринт более или менее «сложным» (по любой метрике, о которой вы можете думать). Много места для творчества. –