Java八皇后游戏代码
时间: 2023-12-06 20:01:59 浏览: 80
Java八皇后游戏是***皇后,使得每个皇后都不会互相攻击。以下是Java八皇后游戏的代码实现:
```
public class EightQueens {
private static final int BOARD_SIZE = 8;
private static int[] queens = new int[BOARD_SIZE];
public static void main(String[] args) {
placeQueens(0);
}
private static void placeQueens(int row) {
if (row == BOARD_SIZE) {
printQueens();
return;
}
for (int col = 0; col < BOARD_SIZE; col++) {
if (isValidPosition(row, col)) {
queens[row] = col;
placeQueens(row + 1);
}
}
}
private static boolean isValidPosition(int row, int col) {
for (int i = 0; i < row; i++) {
int diff = Math.abs(col - queens[i]);
if (diff == 0 || diff == row - i) {
return false;
}
}
return true;
}
private static void printQueens() {
for (int row = 0; row < BOARD_SIZE; row++) {
for (int col = 0; col < BOARD_SIZE; col++) {
if (queens[row] == col) {
System.out.print("Q ");
} else {
System.out.print(". ");
}
}
System.out.println();
}
System.out.println();
}
}
```
该代码使用了递归和回溯算法来解决八皇后问题。在placeQueens方法中,我们首先检查当前行的每个列是否是一个有效的位置,如果是,则将皇后放置在该位置,并递归到下一行。如果没有有效的位置,则回溯到上一行并尝试下一个列。isValidPosition方法用于检查当前位置是否与之前的皇后位置冲突。printQueens方法用于打印出解决方案。
阅读全文