#sudoku #sudoku-solver #engine #rules #backtracking #variant #constraints

sudoku-variants

A flexible Sudoku engine that supports common variations and custom rules

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

#1255 in Algorithms

MIT/Apache

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

~305KB