Sudoku Solver
Purpose
This program will solve a puzzle following the rules of Sudoku. A description of the rules used can be found at the Sudoku entry on Wikipedia .
The application impliments a N x N puzzle.
This was originally started as a challenge between friends. There are more efficient solutions for small puzzles but they tend to get impossibly slow at puzzles larger then 4 x 4.
I have even heard somebody mention that this has some unknown artificial intelligence algorithm behind it. It is just a basic error minimization search.
Usage
It is a command line application that can take several parameters.
- -h/-?: Shows help-s old|simann|mixed: Uses old style, mixed or Simulated Annealing to search for a solution.-i filename : This loads a text file with initial values for the puzzle
The format of the file is as follows: x y value Where x and y is in the range 0 to ( N*N ) - 1 and value is in the range 1 to N*N. Very little verification is done on this file, so I expect many bugs related to this function. It will not detect if an impossible starting condition has been set. The application will load the initial state ( if specified ), initialize the rest of the puzzle to random values and then do a search to find a solution where the conditions of the game has been met.
Known Bugs
None thus far.
Source Code
It is normal C++ and should compile on most Unix systems.
License
Operating Systems
Currently there is support for the following operating systems:
- Linux
- Mac OS X
- Sun Solaris Sparc
Download
| Version | tgz | Date | Changelog |
|---|---|---|---|
| 0.5 | tgz | 31 May 2006 | Cleaned up the code and added a mixed search algorithm |
| 0.4 | tgz | 23 May 2006 | Added simulated annealing as searching algorithm |
| 0.3 | tgz | 12 Aug 2005 | Improved searching speed |
| 0.2 | tgz | 6 Aug 2005 | Initial Release |