RosettaCodeData/Task/Maze-generation/Mathematica/maze-generation-2.math

12 lines
457 B
Text
Raw Permalink Normal View History

2013-04-10 21:29:02 -07:00
MazeGraph[m_, n_] :=
2013-10-27 22:24:23 +00:00
Block[{$RecursionLimit = Infinity, grid = GridGraph[{m, n}],
unvisitedQ}, unvisitedQ[_] := True;
Graph[Range[m n], Reap[{unvisitedQ[#] = False;
Do[
If[unvisitedQ[neighbor],
Sow[# <-> neighbor]; #0@neighbor], {neighbor,
RandomSample@AdjacencyList[grid, #]}]} &@
RandomChoice@VertexList@grid][[2, 1]],
GraphLayout -> {"GridEmbedding", "Dimension" -> {m, n}}]];
2013-04-10 21:29:02 -07:00
maze = MazeGraph[13, 21]