Monday, October 26, 2009

What Makes A Good Sudoku Program?

A good sudoku program on your computer can greatly facilitate your sudoku game in many aspects. It can serve as a sudoku generator to make new sudoku puzzles of any degree of difficulty from beginner to very difficult. A good sudoku program can also make an unlimited number of new puzzles without repeating previous puzzles. The sudoku software should be intelligent enough to give you hints or clues during the solving process enabling you to reach the correct sudoku solution. So the sudoku program should in effect be both a sudoku generator and a sudoku solver. It should have a built-in sudoku algorithm, which should be able to solve even the most difficult sudoku puzzle. However, first and foremost it should be a friendly assistant helping you to solve the sudoku puzzle.

A great help in solving sudoku is to make a table (the candidate table) of possible candidate numbers, which may be placed in each of the empty squares at each stage. For example the number 2 cannot be placed in a square, if there is already a number 2 in the row, column or block in which the square is placed.

A good sudoku program can automati- cally calculate the candidate table and show it directly on the sudoku board in such way that you can see the possible numbers (the candidate numbers) for each of the empty squares. If a square has only one candidate (an obvious single candidate), then that number should be placed in the square. A single candidate may also be hidden among other candidates in a square (hidden single candidate).

When you find a square with a single candidate, then you can place that number in the square. Thereafter that candidate number needs to be removed from the candidate table for the three groups (row, column and block) of which the square is a part. A good sudoku program would do this automatically.

You can solve the easy sodoku puzzles just by finding single candidates. To solve the more difficult Sudoku puzzles, you need to reduce the number of candidates until single candidates appear. There are many methods for reducing candidates. Your sudoku program should be able to suggest candidate reduction according to a considerable number of methods. These include ’locked’ candidate, ‘naked’ candidates (pairs, triples, quads), ‘hidden’ candidates (pairs, triples, quads) and the more special x-wing, swordfish and Jellyfish.

Other features of a good sudoku program would include: easy entering of suduko puzzles from newspapers, books and magazines, saving and loading of puzzles, saving of sudoku puzzles in progress, a go back one step option, printing of sudoku puzzles, a timer option to record the time used to solve a given puzzle and a recording of the solving process.