Maze generation: Difference between revisions

m
→‎{{header|Sidef}}: minor code simplification
m (Added Sidef language)
m (→‎{{header|Sidef}}: minor code simplification)
Line 5,278:
=={{header|Sidef}}==
<lang ruby>var(w:5, h:5) = ARGV.map{.to_i}...;
 
var avail = (w * h);
var d = [[-1, 0], [0, 1], [1, 0], [0, -1]];
 
# cell is padded by sentinel col and row, so I don't check array bounds
Line 5,289 ⟶ 5,291:
avail-- > 0 || return; # no more bottles, er, cells
 
{
var d = [[-1, 0], [0, 1], [1, 0], [0, -1]];
while ( var i = d.len?) {pick;
var i = d.pop_rand;
var (x1, y1) = (x + i[0], y + i[1]);
 
Line 5,299 ⟶ 5,300:
if (y == y1) { ver[y][[x1, x].max] = ' ' };
walk(x1, y1);
} * d.len;
}
 
2,747

edits