| oppsCell = new Array();
//定义新数组oppsCell
if (wallNum == 0) {
oppsCell = fun_findcell(x+1, y);
} else if (wallNum == 1) {
oppsCell = fun_findcell(x, y+1);
} else if (wallNum == 2) {
oppsCell = fun_findcell(x-1, y);
} else if (wallNum == 3) {
oppsCell = fun_findcell(x, y-1);
}
// 根据墙壁编号的不同,分别调用参数不同的函数,fun_findcell为自定义函数
if (oppsCell[0] == roomNum) {
continue;
}
if (wallNum == 0) {
oppsWall = 2;
} else if (wallNum == 1) {
oppsWall = 3;
} else if (wallNum == 2) {
oppsWall = 0;
} else if (wallNum == 3) {
oppsWall = 1;
}
// 打开单元格中的一堵墙
Maze[roomNum][cellNum][wallNum] = false;
Maze[oppsCell[0]][oppsCell[1]][oppsWall] =
false;
Maze[roomNum] = Maze[roomNum].concat(Maze[oppsCell[0]]);
Maze.splice(oppsCell[0], 1);
//用四个墙壁将空间封闭
if (Maze.length == 1) {
break;
}
}
function fun_findcell (a, b) {
reCell = new Array();
for (i=0; i
for (j=0; j
if (Maze[i][j][4] == a && Maze[i][j][5]
== b) {
reCell.push(i, j);
return reCell;
}
}
}
}
//自定义函数fun_findcell,用来寻找没有封闭的单元格
|