Я пытаюсь вытащить массив всех удаленных стен из этого кода генерации лабиринта. Кажется, он не работает, когда я прошу его распечатать, он даст мне всю решетку лабиринта, а не конкретные стены, о которых я прошу.Как получить массив удаленных стен из кода генерации лабиринта Mathematica
MazeGen2[m_, n_] :=
Block[{$RecursionLimit = Infinity,
unvisited = Tuples[Range /@ {m, n}], maze, mazearray = {},
mazeA},
(*unvisited=Delete[unvisited,{{1},{2},{Length[
unvisited]-1},{Length[unvisited]}}];*)
(*Print[unvisited];*)
maze = {{{{#, # - {0, 1}}, {#, # - {1, 0}}}} & /@
unvisited, {{{0, n - 1}, {0, 0}, {m - 1,
0}}}};(*This generates the grid*)
Print[maze];
{unvisited = DeleteCases[unvisited, #];
(*Print[unvisited];*)
Do[
If[MemberQ[unvisited, neighbor],
maze = DeleteCases[
maze, {#, neighbor - {1, 1}} | {neighbor, # - {1, 1}}, {5}]
(*mazeA=Flatten[AppendTo[mazearray,
maze]];*)
; #[email protected]],
{neighbor,
[email protected]{# + {0, 1}, # - {0, 1}, # + {1, 0}, # - {1,
0}}}
]
} &@[email protected];
Flatten[maze]
];
Я слишком ленив, чтобы вырезать и вставить фрагмент, который содержит код с комментариями, присутствие которого просто затрудняет понимание вашей функции. –
Я слишком ленив, даже чтобы прочитать комментарий @ HighPerformanceMark –
Я предлагаю вам (попробуйте) написать код, чтобы нарисовать свой лабиринт. Вы обнаружите, что ваша начальная сетка взломана. – agentp