Solving custom Sudokus - sudoku-solver.ch

July 17, 2023

TLDR: I built sudoku-solver.ch to solve custom, special-type Sudokus - check it out if you need some help to solve one!


A while ago, I solved a Geocache which consisted of 26 custom Sudokus, each one being unique. Most of them had additional constraints (and therefore less numbers already filled in), for example this one:

Each arrow indicates that the number in the field pointed to is one bigger than in the field where the arrow is coming from.

As I wrote in Coming back to old problems - Sudoku, the basic technique of constraint propagation and backtracking is fairly efficient and can be extended to include additional constraints, like sums, smaller/bigger than, exact difference, etc.

Using the same techniques but adding additional constraints, I built sudoku-solver.ch, which allows for many common constraints to be added to the board.

sudoku-solver.ch

Some features:

  • Sudoku X: Two additional diagonal units
  • Hyper Sudoku: Four additional units
  • Killer Sudoku (Sum Sudoku): Regions of variable size must form sums
  • Nonomino: No 3x3 block units, but 9 custom, irregular units instead
  • Odd-Even Sudoku: Normal Sudoku with odd/even constraints
  • Greater/Less Than Sudoku: Normal Sudoku with greater/less than constraints

I also learned a lot about Web workers and generating beautiful random colors on the way.

You can check out the Source code here: Github