Sudoku Solver

Sudoku Solver Applet


If the applet is not running you may need to add an exception to the Java Control Panel.
To be able to load/save puzzles to your local drive you need to accept the certificate

This Sudoku Solver is in BETA stage of development. If you find any problems or have any ideas for features please email me. Once this is a stable product I will post all the code under the GNU GPLv3 license.

This solver aims to provide step by step instructions on how to solve a Sudoku using proper solution techniques as opposed to using a brute force solver.

Puzzles can be manually input or generated for you.


This software is released under the GNU GPLv3 license


Download the Sudoku beta code


Puzzle Generation

Sudoku puzzle generation is performed by generating a random completed grid using a brute force solver and then selecting 'n' random cells as the starting point of the puzzle. If the puzzle can be solved without resorting to the brute force solver a known cell is removed and the solver re-run until the puzzle is no longer solvable. The last solvable version it graded for solution difficulty and if applicable used.

As a stand-alone system the application generates puzzles in the background building up a list of puzzles for each category. This allows the user to be able to quickly select another puzzle without having to wait for the generator each time a new puzzle is required. Background generation also works on the Applet version on this page however it will only generate puzzles whilst it has focus. Puzzles are generated on a trial and error basis so the more difficult the puzzle the less likely it is to be generated. If on starting the application you immediately try to load an Extreme puzzle there may not be one available (in which case a progress dialog will display until one is found) or it may be of poor quality. The longer the program runs the better the quality of the hard and extreme puzzles are likely to be. This feature has limited functionality when run as an applet as the background task only runs when the applet has focus.

Back to the Top