Está en la página 1de 2

//Programa para las diferentes combinaciones de 8 reinas en un tablero de ajedre

z

/*
* El hombre ms poderoso es el que es dueo de s mismo.......
* Los hombres dan mayor crdito a lo que ven que a lo que oyen.....
* SenecaMX
*/
public class Reinas8 {
public static void main(String[] args) {

//Crear el Tablero de 8*8
boolean tablero[][] = new boolean [8][8];

placeQueen(tablero,0);

//Imprimir el Tablero
for (int r = 0; r < 8; r++){
for (int c = 0; c < 8; c++)
if (tablero[r][c] == true)
System.out.print("L ");
else
System.out.print("- ");
System.out.println();
}
}

public static boolean placeQueen(boolean[][] board, int row){

for (int i = 0; i < 8; i++){

if (canBePlaced(board, row, i))
if (row + 1 == 8){
board[row][i] = true;
return true;
}
else{
board[row][i] = true;
if(placeQueen(board, row + 1))
return true;
else
board[row][i] = false;
}
}

return false;
}

public static boolean canBePlaced(boolean [][] board, int row, int colu
mn){
int lDiag = column - 1;
int rDiag = column + 1;
for (int i = row - 1; i >= 0 ; i--){


//Check Diagonal Up Right to Left
if(lDiag >= 0 && board[i][lDiag])
return false;
lDiag--;

//Check Diagonal Up Left to Right
if(rDiag <= 7 && board[i][rDiag])
return false;
rDiag++;

//Check Columns
if(board[i][column])
return false;
}

return true;
}

}

También podría gustarte