That place doesn't exist yet! Basically, the idea of solving the 8 queens recursively consists of a function that puts a queen on position in a given column (or row), then check whether it is a valid position. If it is valid, you move to the next column 8or row, and there you do the same. If not, check the next position. If you can't find a valid position for a queen in the current column, you return false to indicate that the queens positioned so far are not part of a valid pattern. Otherwise return true.
You don't have any such function yet. But here's some pseudocode:
void Position::try_place_queen_at(int column)
{
int row = 0;
do {
if (can_place_queen_at(row, column))
{
Position new_board = add_queen(row, column);
if (column == Max_column) { new_board.display(); }
else {
new_board.try_place_queen_at(column+1); }
}
else
{
++row;
}
} while (row <= Max_row && !valid);
}
I'm using the term Position here in the sense of an N queens position rather than a general chess position, i. e. the entire board and all the queens on it, with the functionality needed to place queens under the specific rules of the problem. As you can see I've used a class called Position that supports placement of queens, checking validity (for the queens problem), and displaying the current position, as well as creating new positions from the old by adding a queen.
I've also generalized the problem by using the constants Max_column and Max_row instead of just 8. While you may not be interested in varying that number, it helps readability of the code, IMHO.
P.S.: the pseudo code will print all valid positions. If you want only 1, the "try..." function should return a flag to indicate whether or not you've already found a solution. (or a number to indicate the number of solutions found so far). that will allow you a check before actually doing the the display.