Currently, the follwing solvers are available:

Sudoku

Sudoku horizontal/vertical

Sudoku 16x16

Sudoku 25x25

X-Sudoku

Hyper Sudoku

Samurai Sudoku

Tridoku

# What can you do with them?

The solvers all operate in a similar way. Using the mouse, choose an active cell in the Sudoku grid. By pressing key 1 to key 9 on the keyboard, or by clicking on a digit in the extra row below the Sudoku grid, the contents of the active cell is set.

The solvers will determine a solution that matches the cells that have been filled manually, and they will indicate if there are 0, 1 or more solutions. If you are trying to get the answer to a Sudoku, your work is done when there is exactly one solution.

The solvers produce a solution (if one exists), but do not indicate how you could have solved the Sudoku by yourself. The solvers are suitable to check whether you found the correct solution, to quickly solve a Sudoku in a newspaper or magazine, or simply to find the solution of a Sudoku.

# How they work

As mentioned earlier, the solver produce a solution if one exists. The text below explains (roughly) how the solver does this.

The solver considers the standard Sudoku as 81 values that need to be picked from digits 1 to 9. In addition we have rules that these 81 values need to adhere to. The first rule is that all digits 1 to 9 need to be present in every row. Put differently: every row is not allowed to have digits 1 to 9 more than once. The solver changes these rules into smaller rules that have the same meaning:

1. The value in row 1, column 1 shall not be the same as the value in row 1, column 2.
2. The value in row 1, column 1 shall not be the same as the value in row 1, column 3.
3. ...
4. The value in row 1, column 1 shall not be the same as the value in row 1, column 9.
5. The value in row 1, column 2 shall not be the same as the value in row 1, column 3.
6. ...
7. The value in row 1, column 2 shall not be the same as the value in row 1, column 9.
8. ...
9. The value in row 1, column 8 shall not be the same as the value in row 1, column 9.
For a single row the number of rules is 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 36 rules. For all rules combined the number of rules is 9 * 36 = 324 rules.

Similarly, the rule that indicates that all digits 1 to 9 need to be in every column is transformed into smaller rules. This amounts to another 324 smaller rules.

For the standard Sudoku this leaves the rule that inidicates that all digits 1 to 9 needs to be in all 9 3x3 squares. Similar to the rows and columns this would in principle result in another 9 * 36 = 324 small rules. However, some of these rules are not new! The first small rule from the top left square is: the value of row 1, column 1 shall not equal the value of row 1, column 2. That is the first small rule that was created for the first row. The small rules that we deduce from the rule for the squares that refer to values of the same row or the same column are all duplicates of the rules that we already had. What it boils down to is that 18 new small rules are introduced for each 3x3 square. This amounts to 9 * 18 = 162 small rules.

in total we have 324 (rows) + 324 (columns) + 162 (squares) = 810 small rules for the standard Sudoku. Each of these rules indicates that the values of two squares are not allowed to be equal.

When the solver needs to perform its task, you have selected values for a number of Sudoku squares. The solver enters these values into its administration and concludes that:

• Some rules can now be checked, because the values that the rules need are now known.
• Some rules cannot be checked yet, because one value is known but the other is not (not yet, anyway).
• The other rules cannot be checked yet, because none of their values is known yet.
Obviously, the solver now checks the rules that can be checked. If the values cadhere to the rules, the solver continues.

After that, the solver chooses the order in which the empty squares will be filled. The solver then varies the contents of the empty squares from 1 to 9. After (temporarily) entering a value into a square the solver immediately checks whether the value adheres to the rules. This way the solver tests all possible combinations, stopping dead branches as soon as possible.