public class MiGong {
public static void main(String[] args) {
int[][] map = new int[8][8];
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
if (i == 0 || j == 0 || i == map.length - 1 || j == map[i].length - 1) {
map[i][j] = 1;
}
}
}
map[3][2] = 1;
map[3][1] = 1;
map[3][3] = 1;
map[3][4] = 1;
map[3][4] = 1;
map[2][4] = 1;
System.out.println("原先迷宫________________");
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
System.out.print(map[i][j] + " ");
}
System.out.println();
}
MiGong.setWay(map, 1, 1);
System.out.println();
System.out.println("迷宫路径________________");
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
if (map[i][j] == 2) {
System.out.print("\033[32;4m" + map[i][j] + " ");
} else {
System.out.print( "\u001B[36m"+ map[i][j] + " ");
}
}
System.out.println();
}
}
public static boolean setWay(int[][] map, int i, int j) {
if (map[6][6] == 2) {
return true;
}
if (map[i][j] == 0) {
map[i][j] = 2;
if (setWay(map, i + 1, j)) {
return true;
}
if (setWay(map, i, j + 1)) {
return true;
}
if (setWay(map, i - 1, j)) {
return true;
}
if (setWay(map, i, j - 1)) {
return true;
}
map[i][j] = 3;
return false;
} else if (map[i][j] == 1) {
return false;
} else if (map[i][j] == 2) {
return false;
} else if (map[i][j] == 3) {
return false;
} else {
return false;
}
}
}
