我需要写一个算法来找到走出迷宫的方法,这是二维数组。我玩过代码,但它不能完全理解当没有多余的加号时,我应该如何在代码中标记终点线,这是一条离开迷宫的路吗? 0
-起始位置 +
-方式 #
-墙。
我走对了吗?递归函数是解决这个问题的好方法吗?
var maze = [
['#', '#', '#', '#', '#', '#', '#', '#', '#', '#'],
['#', '#', '#', '#', '#', '#', '#', '#', '#', '#'],
['#', '#', '+', '+', '#', '#', '#', '#', '#', '#'],
['#', '#', '+', '#', '0', '#', '+', '+', '+', '+'],
['#', '#', '+', '+', '+', '+', '+', '#', '#', '#'],
['#', '#', '#', '#', '#', '+', '+', '#', '#', '#'],
['#', '#', '#', '#', '#', '#', '+', '#', '#', '#'],
['#', '#', '#', '#', '#', '#', '+', '#', '#', '#'],
['#', '#', '#', '#', '#', '#', '+', '+', '#', '#'],
['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']
];
我玩过代码,但还是不能完全理解?我走对了吗?递归函数可以解决这个问题吗?我非常感谢所有能帮助我的人。
我的“不完美代码”:)
function goFurther(row, column) {
console.log(maze[row][column]);
if (maze[row][column] == ' ') {
console.log('We solved the maze');
} else if (maze[row][column] == '+') {
console.log('you need make it go further');
maze[row][column] = 909;
if (row < maze.length - 1) {
goFurther(row + 1, column);
}
if (column < maze[row].length - 1) {
goFurther(row, column + 1);
}
if (row > 0) {
goFurther(column + 1, row);
console.log(row, column);
}
if (column > 0) {
goFurther(row + 1, column);
console.log(row, column);
}
}
}
goFurther(2, 2);
暂无答案!
目前还没有任何答案,快来回答吧!