| 199 | } |
| 200 | |
| 201 | bool valid_board(board_element *b) |
| 202 | { |
| 203 | bool success = true; |
| 204 | for (unsigned i = 0; i < BOARD_SIZE; ++i) |
| 205 | { |
| 206 | if (success && b[i].solved_element) |
| 207 | { // element is fixed |
| 208 | unsigned row = i / BOARD_DIM, col = i % BOARD_DIM; |
| 209 | if (in_row(b, row, col, b[i].solved_element) || in_col(b, row, col, b[i].solved_element) |
| 210 | || in_block(b, row, col, b[i].solved_element)) |
| 211 | success = false; |
| 212 | } |
| 213 | } |
| 214 | return success; |
| 215 | } |
| 216 | |
| 217 | bool examine_potentials(board_element *b, bool *progress) |
| 218 | { |
no test coverage detected