제 질문은 자바에서 무작위로 생성 된 미로를 어떻게 만들 수 있습니까? 미로 만들기의 DFS 방식의 주요 개요는 알고 있지만 구현하기가 힘듭니다. 내 프로그램에서 미로는 2D 배열로 유지되고 배열에 1을 추가하면 범위를 벗어나는 배열이 생성됩니다. 나는 그것을 어떻게 피할 수 있습니까? 나는 아주 복잡한 미로, 단순한 미로를 만들고 싶지 않습니다. 코드를 작성하기 시작했지만 어떻게 작동하게 할 것인지 잘 모르겠습니다.Java로 미로 만들기?
는 DFS 방법에 대한 의사 코드는 다음과 같습니다
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
내가 이웃 그대로 어떻게 그들을 파괴하는 자신의 벽이있는 경우 당신이 찾을 수있는 방법을 이해하고 있지 않다. 누구든지이 프로그램에 대해 통찰력을 줄 수 있습니까? 매우 감사.
당신은'Array' 대신'ArrayList'을 사용할 수 있습니다 그리고 그들은 당신이 필요로하는 어떤 크기에 맞게 성장할 것입니다. – twain249
벽을 두드 리거나 추가하여 미로를 만들 수 있습니다. 아마 가장 흥미로운 것들은 기본 미로를 만들고 나서 무작위로 벽을 움직 인 다음, 미로를 변화시키는 것이 미지 (어떤 측정 기준이든 생각할 수있는 것)가되었는지 여부를 테스트 한 경우에 가장 흥미로운 것입니다. 창조성을위한 많은 공간. –