Пример #1
0
 void generateBoard(vector<int>& board, vector<vector<string>>& solutions, int n){
     if(board.size() == n){
         if(isValidCross(board)){
             vector<string> solution;
             for(int i=0; i<n; i++){
                 string line(n, '.');
                 line[board[i]] = 'Q';
                 solution.push_back(line);
             }
             solutions.push_back(solution);
         }
         return;
     }
     for(int i=0; i<n; i++){
         bool exist = false;
         for(int j=0; j<board.size(); j++){
             if(board[j] == i){
                 exist = true;
                 break;
             }
         }
         if(!exist){
             board.push_back(i);
             if(isValidCross(board)) generateBoard(board, solutions, n);
             board.pop_back();
         }
     }
 }
Пример #2
0
void visitCross(int x, int y){

	Picture[x][y] = '*';
	int i;
	for (i = 0; i < 4; i++)
		if (isValidCross(x + dx[i], y + dy[i]))
			visitCross(x + dx[i], y + dy[i]);

}