4 releases
0.2.1 | Apr 5, 2021 |
---|---|
0.2.0 | Mar 26, 2021 |
0.1.1 | Dec 27, 2020 |
0.1.0 | Sep 5, 2020 |
#1315 in Algorithms
230KB
3.5K
SLoC
sudoku-variants
A flexible Sudoku engine for Rust that supports common variations and custom rules.
Features
- Parsing and printing Sudoku
- Checking validity of Sudoku and solutions according to standard rules as well as some common variants
- Injection of custom constraints
- Solving Sudoku using a perfect backtracking algorithm
- Generating Sudoku, with a possibility to specify a solver that has to be able to solve the result, thus controlling the difficulty
- Strategies that resemble human reasoning, which can be used to accelerate backtracking or to control the difficulty of generated Sudoku
- Definition of custom strategies
Planned Improvements
- Allow stateful constraints that can be reduced, such as Killer Sudoku
- Implement some more common constraints (e.g. Killer, Sandwich, Mini-Killer, maybe more)
- Improve the performance of the perfect backtracking solver
- Integrate with the Serde framework
- Enable non-standard topologies of Sudoku fields (e.g. dead cells, grids without blocks)
Links
Dependencies
~315KB