同一地图迷宫,按不同设定策略走,最终形成的路线应该不一样。但是我下面的一个关于迷宫的代码,按三种策略走,最终形成的路线怎么都一样?请教各位。

public class labyrinth { //labyrinth:迷宫

public static void main(String[] args) {
int[][] arr = new int[10][10];
migong laby = new migong();
for(int i = 0;i < 10;i++){
arr[i][0] = 1;
arr[i][9] = 1;
}
for(int j = 0;j < 3;j++){
arr[2][j] = 1;
}
for(int j = 0;j < 10;j++){
arr[0][j] = 1;
arr[9][j] = 1;
}
for(int j = 3;j < 10;j++){
arr[5][j] = 1;
}
arr[3][3] = 1;
arr[3][4] = 1;
arr[3][5] = 1;
arr[6][3] = 1;
arr[7][3] = 1;
arr[7][5] = 1;
arr[8][5] = 1;
for(int i = 0;i < 10;i++){
for(int j = 0; j < 10;j++){
System.out.print(arr[i][j] + "  ");
}
System.out.println();
}
//本次按:下-右-上-左顺序探索
System.out.println("=====本次按:下-右-上-左顺序探索=====");
laby.findmethod(arr,1,1);
for(int i = 0;i < 10;i++){
for(int j = 0; j < 10;j++){
System.out.print(arr[i][j] + "  ");
}
System.out.println();
}
System.out.println("逃出升天!");
//本次按:右-下-左-上顺序探索
System.out.println("=====本次按:右-下-左-上顺序探索=====");
laby.findmethod2(arr,1,1);
for(int i = 0;i < 10;i++){
for(int j = 0; j < 10;j++){
System.out.print(arr[i][j] + "  ");
}
System.out.println();
}
System.out.println("逃出升天!");
//本次按:上-右-下-左顺序探索
System.out.println("=====本次按:上-右-下-左顺序探索=====");
laby.findmethod3(arr,1,1);
for(int i = 0;i < 10;i++){
for(int j = 0; j < 10;j++){
System.out.print(arr[i][j] + "  ");
}
System.out.println();
}
System.out.println("逃出升天!");
}
}


class migong{
//1、下->右->上->左
public boolean findmethod(int[][] arr,int i,int j){//
if(arr[8][8] == 2 ){
return true;
} else {
if(arr[i][j] == 0){
arr[i][j] = 2;
if(findmethod(arr,i + 1,j)){
return true;
} else if(findmethod(arr,i,j + 1)){
return true;
} else if(findmethod(arr,i - 1,j)){
return true;
} else if(findmethod(arr,i,j -1)){
return true;
} else {
arr[i][j] = 3;//若四个方向为均为1、2、3的一种,说明为墙壁或已走或为绝路,则本位置标注为3
return false;
}
} else {
return false;
}
}
}
//2、右->下->左->上
public boolean findmethod2(int[][] arr,int i,int j){//
if(arr[8][8] == 2 ){
return true;
} else {
if(arr[i][j] == 0){
arr[i][j] = 2;
if(findmethod(arr,i ,j + 1)){
return true;
} else if(findmethod(arr,i + 1,j)){
return true;
} else if(findmethod(arr,i,j - 1)){
return true;
} else if(findmethod(arr,i - 1,j)){
return true;
} else {
arr[i][j] = 3;//若四个方向为均为1、2、3的一种,说明为墙壁或已走或为绝路,则本位置标注为3
return false;
}
} else {
return false;
}
}
}
//3、上-右-下-左
public boolean findmethod3(int[][] arr,int i,int j){//
if(arr[8][8] == 2 ){
return true;
} else {
if(arr[i][j] == 0){
arr[i][j] = 2;
if(findmethod(arr,i -1 ,j)){
return true;
} else if(findmethod(arr,i,j + 1)){
return true;
} else if(findmethod(arr,i -1,j)){
return true;
} else if(findmethod(arr,i,j - 1)){
return true;
} else {
arr[i][j] = 3;//若四个方向为均为1、2、3的一种,说明为墙壁或已走或为绝路,则本位置标注为3
return false;
}
} else {
return false;
}
}
}
}