public class EightQueens {
public static void main(String args[]) {
int N = 8;
int[][] board = new int[N][N];
solve(0, board, N);
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++) {
if(board[i][j]==1) System.out.print("Q ");
else
System.out.print("* ");
}
System.out.println();
}
}
static boolean solve(int a, int[][] tahta, int N) {
if(a>=N) return true;
for(int i = 0; i < N; i++) {
if(isValid(tahta, a, i, N)) {
tahta[a][i] = 1;
if(!solve(a+1, tahta, N)) {
tahta[a][i] = 0;
}
else
return true;
}
}
return false;
}
static boolean isValid(int[][] tahta, int x, int y, int N) {
int i, j;
for(i = 0; i < x; i++)
if(tahta[i][y]==1)
return false;
i = x - 1;
j = y - 1;
while((i>=0)&&(j>=0))
if(tahta[i--][j--]==1) return false;
i = x - 1;
j = y + 1;
while((i>=0)&&(j<N))
if(tahta[i--][j++]==1) return false;
return true;
}
}
Ömer Açık
Son metotdaki {} lari koymadigin icin neyin ne oldugu anlaşilmiyor pek. Onun disinda eline saglik.
YanıtlaSil