//ma是迷宫 //mb用来标记走过的路mb.fill(0); //0表示空地,可通行 //1表示障碍物,走不动 //目的地在(x0,y0) //position=[] //存放的是现在的位置 //direction=[[-1,0],[0,-1],[1,0],[0,1]]; //destination=[x0,y0]; let ma = [[0, 0, 1, 0], [0, 0, 0, 0], [0, 0, 1, 0], [0, 1, 0, 0], [0, 0, 0, 1]]; let mb = [[1, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]; let position = new Array(15); position[0] = [0, 0]; let direction = [[-1, 0], [0, -1], [1, 0], [0, 1]]; let destination = [3, 2]; function maze(step) { //结束条件是抵达目的地 if (position[step][0] === destination[0] && position[step][1] === destination[1]) { console.log(position); return; } for (let i = 0; i < 4; i++) { let new_x = position[step][0] + direction[i][0]; let new_y = position[step][1] + direction[i][1]; if (new_x < 0 || new_x > 4 || new_y < 0 || new_y > 3) { continue; } if (mb[new_x][new_y] === 0) { position[step + 1] = [new_x, new_y]; mb[new_x][new_y] = 1; maze(step + 1); mb[new_x][new_y] = 0; } } return; } maze(0);
Caballarii