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.
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.