一、需求分析
在迷宫中,找到一条从起点到达终点的通路,有通路则返回true,并显示通路,否则返回false。
二维数组模拟迷宫,0:表示当前节点没有走过;1:表示墙,不能走。
二、解决思路
1、先定义几个数字,0:表示当前节点没有走过;1:表示墙,不能走;2:表示当前节点为通路;3:表示当前节点已经走过,但是不是通路。
2、假设当前节点为通路,设置值为2。
3、检查当前节点的上下左右四个节点,若上下左右四个节点都不通,则将当前节点值设置为3;若上下左右四个节点中有某一个节点为通路,则当前节点值为2保持不变。
4、当前节点的上下左右检查完毕并更新当前节点的状态后,接着检查其相邻节点。
5、直到走到终点结束。
三、代码
package com.recorsion;
public class MiGong {
public static void main(String[] args) {
// 先创建一个二维数组,代表地图
int[][] map = new int[8][7];
// 将第一行,最后一行都设置成1,代表墙
for (int i = 0; i < 7; i++) {
map[0][i] = 1;
map[7][i] = 1;
}
// 将第一列、最后一列设置成1,代表墙
for (<