递归:方法内调用本方法,每次调用都会在栈中新建一个栈帧,直到最后一个方法结束,开始返回,栈帧依次出栈。
本代码实现思路 1.定义一个迷宫,设置墙
2.设计自己的行走方法(下 >右>上>左)
package MiGong;
//递归实现迷宫寻路问题
public class MiGongg {
public static void main(String[] args) {
int arr[][] = new int[8][7];
arr[2][1]=1;
arr[2][2]=1;
// arr[2][3]=1;
// arr[1][3]=1;
for (int i=0;i<7;i++){
arr[0][i] = 1;
arr[7][i]=1;
}
for (int i=0;i<7;i++){
arr[i][0] = 1;
arr[i][6]=1;
}
for (int a[]:arr){
for (int b:a){
System.out.print(b+"\t");
}
System.out.println();
}
setWay(arr,1,1);
System.out.println();
for (int a[]:arr){
for (int b:a){
System.out.print(b+"\t");
}
System.out.println();
}
}
public static boolean setWay(int arr[][],int i,int j){
if (arr[6][5] == 2){
return true;
}else {
if (arr[i][j] == 0){
arr[i][j] =2;
if (setWay(arr,i+1,j)){//向下走
return true;
}else if (setWay(arr,i,j+1)){//向右走
return true;
}else if (setWay(arr,i-1,j)){//向上走
return true;
}else if (setWay(arr,i,j-1)){//向左走
return true;
}else {//判断四个方向如果都走不通,则为死路
arr[i][j] =3;
return false;
}
}else {//如果map[i][j]不等零 则直接返回false
return false;
}
}
}
}