// Strelec.cpp #include "stdafx.h" #include #include using namespace std; const int N=8; bool A [N][N]; inline int test (int i, int j) { if (i >= 0 && i < N && j >= 0 && j < N) return A [i][j]; else return false; } void dalsi (int i, int j); void umistit (int i, int j) { bool okay=true; for (int v = 1; v <= N-1 && okay; v++) if (test (i-v, j-v) || test (i-v, j+v) || test (i+v, j-v) || test (i+v, j+v) ) okay=false; if(okay){ A[i][j] = true; dalsi (i, j); A[i][j] = false; // odebrat strelce } dalsi (i,j); } void dalsi (int i, int j) { if (i+1 < N) umistit (i+1, j); // dolu else if (j+1 < N) umistit (0, j+1); // nasledujici sloupec, prvni radka else { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) cout << int (A[i][j]) << " "; cout << endl; } cout << endl; // prazdna radka } } int _tmain(int argc, _TCHAR* argv[]) { for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) A[i][j] = false; umistit (0, 0); cout << "Hotovo" << endl; system ("pause"); return 0; }