The user of the application can enter a sudoku problem or ask the application to generate one. He can then try to solve this problem with the help if necessary of the optional display of the possible choices on each square of the grid in the state of the game. The player can eliminate some of these choices himself or place values on the boxes. He may also ask the program to show him the final solution. The strength of the program is its ability to develop step by step progress towards the solution, explaining at each step the why of its action, elimination of a choice or placement of a value.