## Sudoku

### Welcome to the Sudoku puzzle solver

Select one of the actions below:

This program shows what logic is used to solve a Sudoku puzzle. As such, it does not solve the puzzle in one go to show you the complete solution but instead, it goes through step by step (or cell by cell), making several passes and applying different rules to either find a value or reduce the number of options for each cell.

Starting with the simplest rule (or algorithm), it will stop if at least one cell value has been found during a pass. If no value has been found for a given pass, the program will more advanced rules until at least one value is found.
If no value is found but the possible values (options) in at least one cell have been reduced, the user can retry a pass with a higher-level algorithm,
Otherwise (no value is found and no reduction in possible values (options), the user can obtain asssitance for more intricate solving techniques
As a last ditch, the user can guess and enter a value in one of the cells (not recommended but sometimes the only way out)

A "pass" is a scan of all the cells on the grid. For info, cells are scanned left to right and top to bottom: cell 1 is at the top left-hand corner while cell 81 is at the bottom right-hand corner.

You can choose to use any of the puzzles already stored in the database or enter a new puzzle. The idea is that, if you get stuck with a Sudoku puzzle (e.g. one taken from a newspaper), you use this program to get unstuck as, hopefully, it will show you step-by-step how to solve it.

Entering cell values to create a puzzle is fairly easy: you just need to click on the cell and then select the value.

The following algorithms are used for solving a puzzle:

Level Algorithm
1: niceExclude values already set in {row, column, box}
2: easyTry exclusions using uniqueness
3: trivialTry exclusions using doubletons
4: simpleTry exclusions using tripletons
5: moderateTry exclusions using hidden doubletons
6: difficultTry exclusions using quadrupletons and quintupletons
7: hardTry exclusions using hidden tripletons
8: cunningTry values in box affecting cells in row or column
9: trickyTry X-wings to reduce options in rows or columns
10: deviousRemove row and column values due to box restrictions
11: fiendishTry Swordfish to reduce options in rows or columns
12: devilishRequest assistance for additional techniques
13: guessworkNothing worked, had to guess.

### Buttons

Buttons are coloured in green when activated and are greyed out when deactivated (i.e. not usable).
 Start the next cycle Run again to reduce options even if no values found Check and/or modify application setup Apply various transformations (rotation, flip) to the puzzle Display options in the cells that are not resolved Display the algorithm that was used to find values Provides details of each pass. Warning: this is NOT user-friendly Reloads the same puzzle and start again Back to selecting a puzzle Displays the puzzle in its current state in a new window Copy/Save the current puzzle Provides assistance by means of intricate techniques for solving puzzles - thanks to Sudoku Swami for some wonderful tutorials.