bool go(int i, int j, vector<vector<char>> &board) { if (i > 8) return true; if (board[i][j] != '.') { next(i, j); return go(i, j, board); } int i0 = i, j0 = j; next(i, j); for (int k=0; k<9; k++) { if (check(i0, j0, k)) { fill(i0, j0, k); if (go(i, j, board)) { board[i0][j0] = k+'1'; return true; } unfill(i0, j0, k); } } return false; }
inline void Puzzle::unplaceVolume(const Image* image) { unfill(image); --pieceFill; volumeMonitor.unplace(image->layout.size()); }