@Test
public void main() {
int[][] img = imgInit(8);
showImg(img);
System.out.println("-----------------------------");
boolean res = bfs(img, 4, 5);
System.out.println(res);
showImg(img);
}
public void showImg(int[][] img) {
for (int i = 0; i < img.length; i++) {
for (int j = 0; j < img[0].length; j++) {
System.out.print(img[i][j] + " ");
}
System.out.println();
}
}
public int[][] imgInit(int n) {
int[][] img = new int[n][n];
for (int i = 0; i < n; i++) {
img[0][i] = 1;
img[i][0] = 1;
img[n - 1][i] = 1;
img[i][n - 1] = 1;
}
return img;
}
public boolean bfs(int[][] arr, int i, int j) {
if (arr[6][6] == 2) {
return true;
}
if (arr[i][j] == 0) {
arr[i][j] = 2;
if (bfs(arr, i + 1, j) || bfs(arr, i - 1, j) || bfs(arr, i, j - 1) || bfs(arr, i, j + 1)) {
return true;
} else {
arr[i][j] = 0;
return false;
}
}
return false;
}