Question: please explain/ comment 3. Eight Queens Write a program that places eight queens on a chessboard (8 x 8 board) such that no queen is

please explain/ comment  please explain/ comment 3. Eight Queens Write a program that places
eight queens on a chessboard (8 x 8 board) such that no
queen is "attacking" another. Queens in chess can move vertically, horizontally, or

3. Eight Queens Write a program that places eight queens on a chessboard (8 x 8 board) such that no queen is "attacking" another. Queens in chess can move vertically, horizontally, or diagonally. How you solve this problem is entirely up to you. You may choose to write a recursive program or an iterative (i.e., non-recursive) program. You will not be penalized/rewarded for choosing one method or another. Do what is easiest for you. 3.1. Output Below is one solution to the eight queens problem, there may be others. Your program only needs to find one solution, any solution, and print it. Assuming the name of your program is queens, executing your program should look like this: z123456@turing:-/csci241/Assign2 $ ./queens 10000000 0 0 0 0 1 0 0 0 00000001 00000100 00100000 O O O O O O 1 0 01 OOOOOO 00010000 z123456@turing:-/csci241/Assign2$ where a '1'; means a queen is on that square of the board and a 'o' means the square is empty Note that it is very important that your output be formatted exactly as shown above. In grading your program, its output will be checked by another program (we wrote) that expects as input a solution in that format. 3.2. File You Must Write Write the code for this assignment in a single file which must be called queens.cpp. 3.3. Hints You might want to represent the chessboard using a 2-D array of integers or Boolean variables, e.g., int board [8] [8] or bool board [8] [8]. This array can be declared in your main() function or as a data member of a class that you write. Initialize the board by filling the array with Os or false. A general strategy is to solve the problem by starting with the top row of the chessboard and proceed down the chessboard one row at a time. Only place a single queen in each row. This eliminates the need to check for other queens on the same row (i.e., queens that could attack horizontally). Always start processing a row by attempting to place a queen in the leftmost column and moving to the right as necessary. When placing a queen in a particular row remember that it suffices to only check the rows above you. If the queen is safe, then place it on the board there (board[row][col] = 1; or board[row] [col] = true;) and proceed to the next row. If it is not safe, then continue to move one column to the right until you find a safe spot or run out of columns. There are two general ways you can solve the eight queens problem; recursively or iteratively. Below are some more general hints that use the suggestions above, first in a recursive algorithm and then in an iterative algorithm. Although two general algorithms are discussed below, remember that you are only required to write one solution to this problem. Write as many solutions as you would like, but submit only one program for grading. You may elect to use the hints from either section below, or you may decide to ignore all of them and design a solution on your own. Whatever you decide is acceptable. 3.3.2. Iterative Algorithm Start by placing a queen in the leftmost column of the top row. Since there are no rows above the top row, there are no "attacking" queens to check, so proceed to the second row. As you move from the first row to the second row we call this "approaching a row from the top". This is differs from "approaching a row from the bottom" (described below). When approaching a row from the top there are no queens on that row. Start by attempting to place the queen in the leftmost column and checking all the rows above. If the queen is safe in that column, place it on the board and proceed to the next row. If it is not safe, try the next column to the right and check there. If you get to the end of the row without finding a safe column for the queen, you must back up a row. This requires you to go back to the previous row and move that queen to the right. This is what is meant by "approaching the row from the bottom". When approaching a row from the bottom, there is already a queen placed on that row and it is already safe from all the queens above it. The problem is that no more queens could be placed on the board in the rows below it. So, this queen must be moved from its safe spot to another safe spot in the same row. All the columns to the left of this queen have already been checked. The only place for this queen to go is to the right. Start by trying one square to the right and checking the rows above. If it is safe, place the queen there and proceed to the row below approaching it from the top. If it is not safe, keep moving the queen to the right. If you run out of columns, then remove the queen from the board and back up to the row above approaching it from the bottom

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!