Sudoku solver

Some years ago I encountered Sudoku puzzles for the first time, and after working a couple of them by hand, I realized a computer program could do the job much faster. So I wrote a Sudoku solver in C. Why C? Probably because at the time I was doing a lot of work in C, so it was easy to just write one more C program. As it turned out, C is quite satisfactory for this problem.

The basic algorithm is essentially a backtracking process. See the comment at the beginning of the C source file for more details. The algorithm seems to work quite well for 9x9 and 16x16 puzzles. Usually a solution is found in well under a second on a 2.3GHz CPU, although there are a couple of 9x9 puzzles which take 20 seconds (see the README file). A possible future direction for enhancing the algorithm is to use the concept of preemptive sets as described here:

J. F. Crook (2009), A Pencil-and-Paper Algorithm for Solving Sudoku Puzzles, Notices Amer. Math. Soc. 56(4), 460-468.

Follow the directions below to download, unzip, and run the program per instructions in the README file.


Download

Download Sudoku solver
    

Unzip on GNU/Linux

    tar xzf sudoku-1.0.tar.gz
    

Unzip on Windows

If not already on your Windows system, download 7-Zip, and then unzip twice:

    7z x sudoku-1.0.tar.gz
    7z x sudoku-1.0.tar
    

README

Follow directions in the README file.