Kaji is a solver for orthogonal grid, cell-based puzzles such as Sudoku.
Kaji aims to always make logical deductions rather than brute-forcing solutions.
Kaji is maintained as part of a live-coding exercise which can be found at: Youtube
- Make it so that the
Puzzle::solve()function returns the logical steps rather than printing them out. - Use the puzzle loader to make some specific tests eg. one where a row contains 12345678, and check that naked-single sets the 9
- Alter the
PuzzleBuilderso that we have multiple stages of building a puzzle, for example, starting with adding the cells, then the regions, etc. to allow for certain cached information (eg. is a region contiguous) - Alter
SudokuGridto take the digits (optional) and take coordinate in logical grid space (optional) to root the grid. This is ultimately to allow for multi-grid puzzles - Give
Cells the ability to have a display name (currently this is rXcY)