1.这是留下来备忘的,毕竟花了一些时间来想的
class Queen {
int[][] chess = new int[8][8];
List<int[][]> list = new ArrayList<>();
public int count = 0;
public void play(int x, int y) {
if (x == 8) {
for (int i = 0; i < chess.length; i++) {
for (int j = 0; j < chess[i].length; j++) {
if (chess[i][j] == 2) {
System.out.print(j + " ");
}
}
}
System.out.println();
count++;
return;
}
for (y = 0; y < 8; y++) {
chess[x][y] = 2;
if (judge(x, y)) {
play(x + 1, 0);
chess[x][y] = 0;
} else {
chess[x][y] = 0;
}
}
}
public boolean judge(int x, int y) {
if (x == 0) {
return true;// 不冲突
}
for (int i = 0; i < x; i++) {
for (int j = 0; j < 8; j++) {
if (chess[i][j] == 2) {
if (y == j || Math.abs(x - i) == Math.abs(y - j)) {
return false;// 冲突
}
}
}
}
return true;
}
}