<script>
var map = [
[1, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 1],
[1, 1, 1, 0, 0, 0, 1],
[1, 0, 0, 3, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 1],
[1, 1, 1, 1, 1, 1, 1]
]
function findWay(map, i, j) {
if (map[i][j] == 3) return true
// if (map[i][j] == 1) return false可以写到下面里面
if (map[i][j] == 0) {
map[i][j] = 2
if (map[i - 1][j] == 3 || map[i + 1][j] == 3 || map[i][j - 1] == 3 || map[i][j + 1] == 3) {
return true
}
//上下左右
if (map[i - 1][j] == 0) {
return findWay(map, i - 1, j)
}
if (map[i + 1][j] == 0) {
return findWay(map, i + 1, j)
}
if (map[i][j - 1] == 0) {
return findWay(map, i, j - 1)
}
if (map[i][j + 1] == 0) {
return findWay(map, i, j + 1)
}
} else {
return false
}
}
var result = findWay(map, 1, 1)
console.log(result)
console.log(map)
</script>
迷宫解决思路,直接用2填充当做标志,没有使用标志位