How the solver works

The solver combines constraint propagation and smart search to solve puzzles quickly:

  • Domains: Each cell keeps a set of possible digits (1–9).
  • Propagation: We apply naked singles and hidden singles to reduce domains before searching.
  • MRV branching: When needed we pick the cell with the fewest possibilities (Minimum Remaining Values) to branch on.
  • Backtracking search: We try candidate digits and recurse; propagation shrinks the search tree significantly.

This hybrid approach is both fast and easy to visualize in the Developer View.