Anonymous user
Maze generation: Difference between revisions
no edit summary
No edit summary |
No edit summary |
||
Line 1,042:
<lang EGL>program MazeGen
south boolean[][];
west boolean[][];
visited boolean[][];
visited = createBooleanArray(mazeSize, mazeSize, false);
// Initialize border cells as already visited
// Initialize all walls as present
south = createBooleanArray(mazeSize, mazeSize, true);
west
end
end
end
private function createIntegerArray(col int in, row int in, initialValue int in) returns(int[][])
newArray int[][] = new int[0][0];
for(j int from 1 to row)
end
newArray.appendElement(innerArray);
end
return(newArray);
end
private function generate(col int in, row int in)
// Mark cell as visited
visited[col][row] = true;
while
!visited[col][row - 1] || !visited[col - 1][row])
while
r float = MathLib.random(); // Choose a random direction
case
end
end
private function generateMaze()
generate(randomStartCol, randomStartRow);
end
private function drawMaze()
if(row > 1)
line = "";
for(col int from 2 to mazeSize)
if(west[col][row])
line ::= "| ";
else
line ::= " ";
end
end
Syslib.writeStdout(line);
end
line = "";
for(col int from 2 to mazeSize - 1)
if(south[col][row])
line ::= "+---";
else
line ::= "+ ";
end
end
line ::= "+";
SysLib.writeStdout(line);
end
end
end</lang>
{{out|Output example (for
<pre>
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|