All the moves that you have done can be retraced. You can go back and forth in history and also load a specific state into the gameboard.
You can copy the current state of the Sudoku matrix and then re-import it. Use the same structure as in the indicated matrices. If you are stuck and want to try several paths, then you can copy your current state and easily go back to that state if you enter a dead end. You can also use the History page to load different states of the Sudoku matrix.
A good starting point if you are new to Sudoku is to look at Wikipedia's Sudoku page. I will not go into details about the rules, history and mathematics in the documentation below, instead I will focus on the details for the NNM Sudoku Magic implementation.
The Gameboard consists of 81 cells, layed out in a 9x9 matrix. There are nine rows, nine columns and also nine 3-by-3 squares in the matrix.
To get a recursive feeling, the gameboard consists of one matrix. The matrix contains nine 3-by-3 squares. Each 3-by-3 square contains nine cells. Each cell contains either a value or a list of nine potential values.
The maths will sum up to:
The matrix consists of 81 cells placed in an array. Each cell gets an index, and since I am a computer scientist, the indices are numbered 0-80.
Each cell has:
The cells in the same row, column or 3-by-3 square as a cell C are called C's neighbours. There are eight neighbours in the same row, eight neighbours in the same column and eight neighbours in the same 3-by-3 square, but four of these are duplicates, so each cell has a total of twenty unique neighbour cells.
A cell is always in exactly one state. It can be either of:
The NNM Sudoku Magic is not an automatic solver, but merely a tool for helping you manually filling in the mundane parts of a puzzle, helping you in the verification of the result, helping you to avoid dead ends and educate in how Sudoku works. You will still have to do the hard work yourself.
This second version is a complete rewrite from the first version. The best ideas from the first version are enhanced and refined and many new ideas are also implemented. The GUI for this version is hopefully much easier to use, since many unnecessary steps were removed.