- Description:
- Killer sudoku brute forcer
- Last Change:
- Clone URL:
ssh://anonymous@git.rkta.de/ksudbf
Commit Briefs
Add pretty print command (master)
Thanks to Tommy Andersen <andersentommy@gmail.com> for the idea! See https://github.com/Barium/killer-sudoku-solver.git
Do not over-allocate
Looks like a left-over from a malloc call.
Update README
* Be more precise when describing the input format * Fix a typo * Add link to blog post
Run the linter at the end of the CI build (tags/v0.1)
Increment pointer before NUL check
No functional change. Saves one iteration and expresses the intend more clearly.
Branches
Tree
README
ksudbf ====== A solver for killer sudokus using brute force. ksudbf stands for killer sudoku brute forcer. It was intentionally abbreviated to six awkward letters. ksudbf will try to solve a given killer sudoku using recursive backtracking. It prints either a solution to stdout or exits with an error. Usage ----- ksudbf [FILE] With no FILE, or when FILE is -, read standard input. Input format ------------ The input file has the following format: cage sum <space> coordinate <space> ... <newline> Example: A 'L'-shaped cage with hint/value 6 and 3 cells in the top left corner: 6 11 12 21 See example/ for a complete example including the solution. The following table shows all coordinates: |----------+----------+----------| | 11 12 13 | 14 15 16 | 17 18 19 | | 21 22 23 | 24 25 26 | 27 28 29 | | 31 32 33 | 34 35 36 | 37 38 39 | |----------+----------+----------| | 41 42 43 | 44 45 46 | 47 48 49 | | 51 52 53 | 54 55 56 | 57 58 59 | | 61 62 63 | 64 65 66 | 67 68 69 | |----------+----------+----------| | 71 72 73 | 74 75 76 | 77 78 79 | | 81 82 83 | 84 85 86 | 87 88 89 | | 91 92 93 | 94 95 96 | 97 98 99 | |----------+----------+----------| Hints ===== ksudhints lets you show the solution step by step. You can reveal specific cells or get a hint for an unspecified cell. Cages with fewer cells are revealed earlier, starting in the top left corner. It also let's you fill in already solved cells while ignoring wrong input. Usage ----- ksudhints -s FILE -p FILE -s a solution as given by ksudbf -p the input file for the solution (same format as ksudbf) With most recent shells one can use: $ ksudhints -p FILE -s <(ksudbf <FILE) Commands: XY [r] - Reveal cell XY. [XY] r [N] - Reveal 1 or N random cells starting with cell XY. XY t N - Test if cell XY has value N n [N] - Show 1 or N next hints. p - Print the board. P - Pretty print the board. s - Show a table with all coordinates. e - Open the board in $EDITOR (to add values to the partial solution). h - Show this help text. Press <Enter> without command to repeat the previous one. Press ^D to see the complete solution and exit. See my blog post[0] for a little tutorial. [0]: https://rkta.de/ksudbf.html Installation ============ See INSTALL
