Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,53 @@
function M = makeMaze(n)
showProgress = false;
colormap([1,1,1;1,1,1;0,0,0]);
set(gcf,'color','w');
NoWALL = 0;
WALL = 2;
NotVISITED = -1;
VISITED = -2;
m = 2*n+3;
M = NotVISITED(ones(m));
offsets = [-1, m, 1, -m];
M([1 2:2:end end],:) = WALL;
M(:,[1 2:2:end end]) = WALL;
currentCell = sub2ind(size(M),3,3);
M(currentCell) = VISITED;
S = currentCell;
while (~isempty(S))
moves = currentCell + 2*offsets;
unvistedNeigbors = find(M(moves)==NotVISITED);
if (~isempty(unvistedNeigbors))
next = unvistedNeigbors(randi(length(unvistedNeigbors),1));
M(currentCell + offsets(next)) = NoWALL;
newCell = currentCell + 2*offsets(next);
if (any(M(newCell+2*offsets)==NotVISITED))
S = [S newCell];
end
currentCell = newCell;
M(currentCell) = VISITED;
else
currentCell = S(1);
S = S(2:end);
end
if (showProgress)
image(M-VISITED);
axis equal off;
drawnow;
pause(.01);
end
end
image(M-VISITED);
axis equal off;