Eight Queens puzzle, printing all solutions
More...
#include <array>
#include <iostream>
Eight Queens puzzle, printing all solutions
- Author
- Himani Negi
-
David Leal
◆ CanIMove()
template<size_t n>
| bool backtracking::n_queens_all_solutions::CanIMove |
( |
const std::array< std::array< int, n >, n > & |
board, |
|
|
int |
row, |
|
|
int |
col |
|
) |
| |
Check if a queen can be placed on the matrix.
- Template Parameters
-
- Parameters
-
| board | matrix where numbers are saved |
| row | current index in rows |
| col | current index in columns |
- Returns
true if queen can be placed on matrix
-
false if queen can't be placed on matrix
check in the row
check the first diagonal
check the second diagonal
54 for (
int i = 0; i < col; i++) {
55 if (board[row][i] == 1) {
60 for (
int i = row, j = col; i >= 0 && j >= 0; i--, j--) {
61 if (board[i][j] == 1) {
66 for (
int i = row, j = col; i <= n - 1 && j >= 0; i++, j--) {
67 if (board[i][j] == 1) {
◆ main()
Main function.
- Returns
- 0 on exit
void NQueenSol(std::array< std::array< int, n >, n > board, int col)
Main function to solve the N Queens problem.
Definition: nqueen_print_all_solutions.cpp:81
◆ NQueenSol()
template<size_t n>
| void backtracking::n_queens_all_solutions::NQueenSol |
( |
std::array< std::array< int, n >, n > |
board, |
|
|
int |
col |
|
) |
| |
Main function to solve the N Queens problem.
- Template Parameters
-
- Parameters
-
| board | matrix where numbers are saved |
| col | current index in columns |
86 for (
int i = 0; i < n; i++) {
void PrintSol(const std::array< std::array< int, n >, n > &board)
Definition: n_queens_all_solution_optimised.cpp:30
void NQueenSol(std::array< std::array< int, n >, n > board, int col)
Definition: n_queens_all_solution_optimised.cpp:89
bool CanIMove(const std::array< std::array< int, n >, n > &board, int row, int col)
Definition: n_queens_all_solution_optimised.cpp:59
◆ PrintSol()
template<size_t n>
| void backtracking::n_queens_all_solutions::PrintSol |
( |
const std::array< std::array< int, n >, n > & |
board | ) |
|
Utility function to print matrix.
- Template Parameters
-
- Parameters
-
| board | matrix where numbers are saved |
32 for (
int i = 0; i < n; i++) {
33 for (
int j = 0; j < n; j++) {