IN PROGRESS update the manual for the added features!!!!
Sudoku (pronounced soo-dough-coo with the emphasis on the first syllable) is a simple number-based puzzle/game played on a 9x9 grid that is divided into 3x3 subgrids (boxes). The goal is to enter a number from 1 to 9 in each cell so that each number appears only once in each column and row. In addition, each 3x3 subgrid may also only contain one of each number.
This version (http://sudoku.p-l-j.org) of the puzzle
is Copyright 2006 by Paul Janson & Rob Golsteijn.
Based on the version (http://www.easysw.com/~mike/sudoku/index.html) from FLTK (1.1.7) example by Michael R Sweet Copyright 2005, and modifications by John T. Haller of PortableApps.com (http://portableapps.com/apps/games/sudoku_portable) to improve portability. Taken from his portable sudoku version 1.1.7a.
At the start of a new game, Sudoku fills in a random selection of cells for you - the number of cells depends on the difficulty level you use. Click in any of the empty cells or use the arrow keys to highlight individual cells and press a number from 1 to 9 to fill in the cell. To clear a cell, press 0, Delete, or Backspace. If \"Settings/auto hints update\" is NOT set, the (pervious) "hints will be displayed again (some kind of UNDO). When you have successfully completed all subgrids, the entire puzzle is highlighted in green until you start a new game.
As you work to complete the puzzle, you can display hints (possible solutions) inside each cell by holding the Shift key and pressing each number in turn. Repeat the process to remove individual numbers, or press a number without the Shift key to replace them with the actual number to use. Note that this will only work with "the standard number keys and not the numeric keypad.//John's improved help text
It must be mentioned that REAL Sudoku's only have one solution. This is however NOT garanteed by the generator. Therefor the \"Unique Puzzle/ Calculate number of solutions\" function has been added, so the user can check uniqueness. WARNING: this might take a lot of time.
The window title shows the difficulty level. If the game was imported or changed by the user it will also indicate the current (number of given cells).
New Puzzle asks the user if a new puzzle (of the current difficulty level) must be created.
Check Game checks if the game is solved, and colors every cell GREEN if so. Cells are highlighted YELLOW if conflicting values are found.
Restart Game removes all user entered values and hints. Hints will be entered immediatly if \"Auto hints update\" is switch on.
Show Solution will show a solution in DARK YELLOW if a solution is available. Every generated game has (at least) one possible solution. Imported games only have a solution if this is calculated during the \"Calculate number of solutions\" function. A message is shown if no solution is available.
Input Puzzle lets the user enter a new puzzle in a text input window as a string of numbers and dots or zeros.
Save Puzzle lets the user save the puzzle as a string in a file (*.sdk). The content of the file can be used as input for the \"Input Puzzle\" function. The file can also be loaded with the \"Load Game\" function.
Save Game lets the user save the whole game in a file (*.su). A whole game contains the puzzle string and a line for each cell containing the user selected value and hints.
Load Game lets the user load the whole game from a file (*.su). If only the puzzle (as saved with \"Save Puzzle\" is available the new puzzle will be presented.
Save offline Puzzle saves the Puzzle only into a txt file that can be printed for offline playing. The user can change printer settings in the sudoku.ini file.
Save offline Puzzle with hints saves the Puzzle with all 9 strikethrough hints for offline playing. The user can change printer settings in the sudoku.ini file.
Save offline Game saves the user's game (including values and hints)into a txt file that can be printed for offline playing. The user can change printer settings in the sudoku.ini file.
Quit Quits the Sudoku game which saves the current situation to the preferences. This situation will be loaded when restarted. Portable Sudoku will save this to a textfile on the users directory on" this MACHINE.
The difficulty level of Easy(50), Medium(40), Hard(30), Impossible(20) or User defined(\?\?) can be selected. Which only determines the number of given cells. These generated games have at least one solutions, but more might be possible. The \"Calculate number of solutions\" function in the \"Unique Puzzle\" menu can be used to determine how many solutions there are. The user defined difficulty is set through the ini file.
The difficulty level is displayed in the title of the game window. The difficulty for the \"User defined difficulty\" in the title displays the actual number of puzzle cells, and is kept uptodate after promote or degrade cell from the \"Unique Puzzle\" menu. The user diffifulty as set in the ini file is shown in \"User defined\" difficulty in the \"Difficulty\" menu.
Has Sound Toggles the sound on or off. Sound off speeds up the animations.
Auto hints update Toggles the auto hints update on or off. This allows the hints in the game to be automaticly updated if a value is entered or changed in a cell.
Auto unique hints Toggles the auto unique hints on or off. This autmaticly shows the unique hints when a value is entered. This is only possible (useful) if auto hints update is also switch on, which is therefore switched on together.
Auto promote unique to value Toggles the auto promote unique to value on or off. This function will automaticly promote unique hints. Uniqueness will not be visable anymore, because the cell gets its value imediately. This automatically switched on the two above.
The Auto settings are only usefull if the higher one is also selected, therefore selecting one will automatically select the higher ones, unselecting one will unselect lower ones in the drop down menu.
Hints calculates the possible solutions (hints) for each empty cell. Hints are calculated based on the row, column and box. This removes the initial work of filling in all 9 hints and then removing row, column and box values. Hints are displayed in a RED font, on a fixed position for each value to create an easy overview.
Hint This cell calculates the hints only for this cell. Hints are calculated based on the row, column and box.
Update Hints from this cell updates hints of other cells based on the value of this cell. It removes this value from the hints in" cells in it's row, column and box.
Show unique hints highlights all cells CYAN with unique hints. Hints are unique within a row, column, box or the only hint left for this cell. The unique hint value is in a BLACK font. This is only usefull if all hints are kept from the beginning otherwise hints might have become unique by lack of other hints, which results in a wrong conclusion of being unique.
Promote unique to values promotes unique hints to values. This is only usefull if all hints are kept from the beginning otherwise hints might have become unique by lack of other hints, which renders the promoted value untrusted.
Remove Hints removes the hints from all cells showing them.
Show this value highlights all cells with the same value as the focus cell MAGENTA. If selected for another value the previous magenta cell backgrounds will be reset.
Remove background colors removes all colors given by the support functions (YELLOW check warning, CYAN unique hint, MAGENTA this value, GREEN correct/spoiled cell, DARK YELLOW solution).
Help me: spoil a cell will randomly pick an empty cell and fill it with the solution value and highlight it green. If there are more possible solutions for this puzzle this value might be a conflicting with already available user enter values, working towards a different solution.
Calculate number of solutions calculates the number of solutions using backtracking. This might take a long time for an empty game. The first solution found will be saved into the solution of the game if the game didn't have a solution yet (as is the case for imported games). A dialog will tell if there was one or more solutions (it stops at second found) and the time it took to calculate until it stops.
Promote cell to puzzle changes the selected cell to a readonly puzzle cell.
Degrade puzzle cell to user cell changes the selected puzzle cell to a user cell, keeping the value."
Auto check number of solutions will start calculating the number of solutions automatically after Promoting or Degrading a cell. This may take some time. After promoting, the first found solutions is saved incase there was more than one solution to make sure that then" remembered solution is the one corresponding to the puzzle cells.
Degrading or Promoting a cell will automatically change the difficuty to user defined and the actual difficulty level is shown in the title bar.
generate a sudoku.ini Generates a default sudoku.ini file only incase there was none.
About Sudoku This file containing all the manual stuff. Unfortuantly it is not possible to copy and past the ini file example from this window (FLTK limitation) therefore the above function is introduced.
The sudoku.ini file allows the user to change settings.It is an real ini file like other microsoft ini files containing [groups] and keys.
We use the [user] group for the genral user settings:
Difficulty sets the number of cell to be used as puzzle cells.
We use the [saveOffline] group for the offline printing settings. The following keys are provided:
Size selects the size of the printable sudoku puzzle. <>\"dot\" only uses a character per cell, and gives a dot for each unknown value. \"normal\" leave cells of 3x3 for the user, and is the default value. \"big\" uses a 7x7 grid for a larger printable space per cell.
Puzzle9 defines the nine characters used in the \"normal\" size prints, to display in the cells containing a puzzle value. The 5th caracter is not used because the puzzle value is printed at this possition.
Value9 defines the nine characters used in the\"normal\" size prints, to display cells containing a user set value. This is only used for \"Save offline Game\" function. The 5th caracter is not used because the puzzle value is printed at this possition.
Puzzle49 defines the 49 characters used in the \"big\" size prints to display in the cells containing a puzzle value. The 25th caracter is not used because the puzzle value is printed at this possition.
Value49 defines the 49 characters used in the \"big\" size prints to display in the cells containing a user set value. This is only used for \"Save offline Game\" function. The 25th caracter is not used because the puzzle value is printed at this possition.
Example sudoku.ini file:
;;the Sudoku ini file for user customizations