| Procedure | Location | Procedure Type | Description |
|---|---|---|---|
| cli_solver | sudoku | Subroutine | Provides a solution for a puzzle passed by CLI: |
| create_filled_grid | sudoku | Subroutine | Puzzle generators |
| create_puzzle | sudoku | Subroutine | Creates a puzzle by brute force. But we are not 100% sure that the solution is unique (just a “high” probability). |
| create_puzzle_with_unique_solution | sudoku | Subroutine | Creates a minimal puzzle. Digits are randomly removed one by one. The process ends when it is not possible anymore to remove a digit while keeping a unique solution. The number of remaining digits is therefore a priori unknown. |
| display_grid | sudoku | Subroutine | Display a grid on the terminal. |
| initialize_random_number_generator | sudoku | Subroutine | System independent initialization of pseudo-random generator |
| is_full | sudoku | Function | Returns true if the grid is full. |
| list_possible_digits | sudoku | Subroutine | Procedure to create a list of allowed digits in the present empty cell. |
| read_grid | sudoku | Subroutine | Read a grid from a provided the path to a file |
| request_grid | sudoku | Subroutine | |
| save_grid | sudoku | Subroutine | Input/Output routines |
| solve_puzzle | sudoku | Subroutine | Receives a puzzle grid and solves it. |
| sort | sudoku | Subroutine | Solver routines |
| valid_colum_or_row | sudoku | Function | Validation routines |
| valid_digit | sudoku | Function | Returns true if the row, column and region of a digit are all valid: |
| valid_grid | sudoku | Function | Check if the whole grid is valid. |
| valid_zone | sudoku | Function | Validation of a zone/region. |