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.