I’ve finally gotten the Sudokit code together enough to make it available. You can download the zipped source and an executable jar file. The app and the code are both still ugly, but I’ve added a text entry field to make it halfway usable.
There is no documentation. The app is just an experimental solver, trying to mimic human solving techniques and providing a rating for a puzzle’s difficultly. Several puzzles are included to pick from or you can enter your own. The solver has some advanced techniques, and while there are some test puzzles in the “database” that it can’t solve, all newpaper-level puzzles can be solved with only the simplest techniques.
That was the thesis from my original investigation: that if applied methodically, only simple techniques are required to solve newspaper-level problems. The simple techniques being hidden single and naked single. Knowing that, I thought I would test the thesis on a “hard” puzzle from a recent Saturday paper. I couldn’t solve it by hand with the simple methods and had to use some of the subset-based techniques.
Wanting to try that puzzle with Sudokit was enough to get me to add the text entry field (and the log panel at the bottom). Sure enough Sudokit was able to solve it with just the simple techniques. Either I wasn’t methodical enough or Sudokit’s logic is implicitly using more advanced techniques.
It froze on my computer (no loop, just no repaints) — I tried running in step and then in slow modes. Will try it on the beach this week
Step and slow modes are broken — I should have disabled them.
Ran into this site which claims a translated general solution from Python to Javascript http://pankaj-k.net/weblog/2007/03/sudoku_solving_program_transla.html