I wrote a quickie version in C++ to run as a web page, you can check it out here and the source here.
To use the program, simply click the numbered button in the grid that you wish to fit into the box (each grid of 9 numbers represents a single square in a typical SuDoKu puzzle). The program will automatically darken and disable the matching number in the column, row and square (a square containing 9 boxes of one number each, in the puzzle). If you want to ensure you don’t accidentally click on that button again (which would re-enable the matching number in the row, column or square, unless it happens to have been blocked from some other location), you can click on the ‘Fix’ button and the small button will be replaced by a large number. Clicking on the Un-Fix button will reverse that change. When you are all done, just click on Reset to get back to the beginning.
I won’t bother with talking about strategy, there are plenty of write-ups on the web, but I have found that by eliminating the ever-so-tedious bookkeeping I can do ‘hard’ puzzles in 15 minutes or less (sometimes much less). Enclosed is an example simple and hard puzzle with a solution for the hard one (.dat files). The zeros represent blank boxes.
Below are a series of links to a zipped up version of the entire contents of this directory, just the executable if you want to trust me (no warranty expressed or implied! Use at your own risk!) as well as the individual source code files if you just want to take a look.
If you have any questions or comments, I can be reached at koxenrider[at]sol[dash]biotech[dot]com.