Maze generation: Difference between revisions

Content added Content deleted
m (Javascript: minor optimization)
(Javascript: slightly clearer code)
Line 108: Line 108:
here= path.pop();
here= path.pop();
}
}
return ([x, y, horiz, verti]);
return ({x: x, y: y, horiz: horiz, verti: verti});
}
}




function display(grid) {
function display(m) {
var text= [];
var text= [];
var horiz= grid[2];
for (var j= 0; j<m.x*2+1; j++) {
var verti= grid[3];
for (var j= 0; j<grid[0]*2+1; j++) {
var line= [];
var line= [];
if (0 == j%2)
if (0 == j%2)
for (var k=0; k<grid[1]*4+1; k++)
for (var k=0; k<m.y*4+1; k++)
if (0 == k%4)
if (0 == k%4)
line[k]= '+';
line[k]= '+';
else {
else {
if (j>0 && verti[j/2-1][Math.floor(k/4)])
if (j>0 && m.verti[j/2-1][Math.floor(k/4)])
line[k]= ' ';
line[k]= ' ';
else
else
Line 129: Line 127:
}
}
else
else
for (var k=0; k<grid[1]*4+1; k++)
for (var k=0; k<m.y*4+1; k++)
if (0 == k%4) {
if (0 == k%4) {
if (k>0 && horiz[(j-1)/2][k/4-1])
if (k>0 && m.horiz[(j-1)/2][k/4-1])
line[k]= ' ';
line[k]= ' ';
else
else
Line 138: Line 136:
line[k]= ' ';
line[k]= ' ';
if (0 == j) line[1]= line[2]= line[3]= ' ';
if (0 == j) line[1]= line[2]= line[3]= ' ';
if (grid[0]*2-1 == j) line[4*grid[1]]= ' ';
if (m.x*2-1 == j) line[4*m.y]= ' ';
text.push(line.join('')+'\r\n');
text.push(line.join('')+'\r\n');
}
}