package Migon;
public class Mingon {
public static void main(String[] args){
//0表示走 ,1表示障碍物
//创建一个8行7列的数组
int[][] map = new int[8][7];
for(int i = 0 ;i<7;i++){
map[0][i] = 1;
map[6][i] = 1;
}
//将最右边的一列和最左边的一列全部设置成1
for(int i = 0;i <8;i++){
map[i][0] = 1;
map[i][6] = 1;
}
map[3][1] =1;
map[3][2] =1;
map[4][3] = 1;
//输出当前地图
for(int i = 0;i < 7;i++){
for(int j = 0 ;j < map[i].length;j++){
//输出一行
System.out.print(map[i][j] +" ");
}
System.out.println();
}
}
}
加强训练: 有点点小问题没有调试:
package Migon;
public class Mingon {
public static void main(String[] args){
//0表示走 ,1表示障碍物
//创建一个8行7列的数组
int[][] map = new int[8][7];
for(int i = 0 ;i<7;i++){
map[0][i] = 1;
map[6][i] = 1;
}
//将最右边的一列和最左边的一列全部设置成1
for(int i = 0;i <8;i++){
map[i][0] = 1;
map[i][6] = 1;
}
map[3][1] =1;
map[3][2] =1;
map[4][3] = 1;
//输出当前地图
for(int i = 0;i < 7;i++){
for(int j = 0 ;j < map[i].length;j++){
//输出一行
System.out.print(map[i][j] +" ");
}
System.out.println();
}
//使用findWay给老鼠找路
T t1 = new T();
//初始化位置为(1,1)
t1.findWay(map, 1, 1);
//输出找路情况
for(int i = 0;i<map.length;i++){
for(int j=0;j< map[i].length;j++){
System.out.println(map[i][j]+" ");
}
System.out.println();
}
}
}
//1.findway 方法就是专门来找迷宫的路径长度
//找到就返回true,否则false
//map 就是二维数组,表示迷宫
//i,j表示就是老鼠的位置,初始化位置为(1,1)
//因为我们递归的找路,所以我先规定map数组的各个值的含义
//0表示可以走 1 表示障碍物 2表示可以走 3 表示走过,但2走不通
//当map[0][5] =2 的时候就说明找到通路了,就结束了。
//先确定老鼠找路策略 下 -》右 -> 上 -》左
public class T {
public boolean findWay(int[][] map,int i,int j){
if(map[6][5] ==2){
return true;
}else{
if(map[i][j] ==0){
//假定可以走通
map[i][j] = 2;
//使用策略:下-》右-》上-》左
if(findWay(map,i+1,j)){//先向下走
return true;
}else if(findWay(map,i,j+1)){//向右走
return true;
}else if(findWay(map,i-1,j)){ //向上走
}else if(findWay(map,i,j-1)){ //向左走
return true;
}else{
//表示走过的
map[i][j] = 3;
}
}else{
return false;
}
return false;
}
}
}