Question: Here is a code of N-Queens Problem. This solution works in the way that no two queens can't attack each other. I am attaching a

Here is a code of N-Queens Problem. This solution works in the way that no two queens can't attack each other. I am attaching a doc file for reference.

In the same way I was assigned to make a java code to place knights so that no two knights can't attack each other. The Chess board should be 8*8 chess board. Please provide a fruitful solution as i have posted the same question twice but cannot get an accurate answer. Please Refer the Code for understanding the solution and vice versa.

Here is the JAVA Code for non attacking Queens:

package queens;

public class Queens {

int[] x;

public Queens(int N) {

x = new int[N];

}

public boolean canPlaceQueen(int r, int c) {

/**

* Returns TRUE if a queen can be placed in row r and column c.

* Otherwise it returns FALSE. x[] is a global array whose first (r-1)

* values have been set.

*/

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

if (x[i] == c || (i - r) == (x[i] - c) || (i - r) == (c - x[i])) {

return false;

}

}

return true;

}

public void printQueens(int[] x) {

int N = x.length;

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

for (int j = 0; j < N; j++) {

if (x[i] == j) {

System.out.print("Q ");

} else {

System.out.print("* ");

}

}

System.out.println();

}

System.out.println();

}

public void placeNqueens(int r, int n) {

/**

* Using backtracking this method prints all possible placements of n

* queens on an n x n chessboard so that they are non-attacking.

*/

for (int c = 0; c < n; c++) {

if (canPlaceQueen(r, c)) {

x[r] = c;

if (r == n - 1) {

printQueens(x);

} else {

placeNqueens(r + 1, n);

}

}

}

}

public void callplaceNqueens() {

placeNqueens(0, x.length);

}

public static void main(String[] args) {

Queens Q = new Queens(8);

Q.callplaceNqueens();

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!