Sudoku Solver

A picture of the current Sudoku Solver
A picture of the current Sudoku Solver

First off, if you don't know what Sudoku is, you'll have to read the Wikipedia article about it, or check out my Sudoku site. That's integral to understanding this page.

OK, so the idea for this is a program that helps you solve Sudoku puzzles. The thing is that this is a specialized solver. There are a lot of solvers out there, and some of them have some really advanced features. Sudoku Susser, for example, highlights, with a few button presses, all of the instances of a simple or advanced technique that you can (or must) use to solve the puzzle, and will also allow you to import a Sudoku puzzle from one of a variety of sources. SadMan's Sudoku program not only graphically shows the effects of various rules but will create its own puzzles with various difficulty levels. That's a lot to compete against, you know.

So my approach is something entirely different. My goal is NOT a tutorial on the use of various high-level solving techniques. Those other programs do that quite well. What I plan to do is create an environment to help with solving Sudoku puzzles of many different types - I want to make an efficient and friendly solving system and an interface that will not only solve a simple 9x9 Sudoku but will also easily expand to a large number of Sudoku variations. Instead of solving the puzzle and showing how it was done, there will be two options: first, to solve the puzzle as far as possible using simple pins and forces (to do an easy puzzle completely, but also to allow the solver to work only on the more complicated aspects of a harder puzzle), and second, to recurse through the puzzle to find the number of solutions that exist.

Sounds decent. Note that this is not the kind of program that does everything for you. This program will act as a helper application, allowing you to solve the puzzle without feeling like you are "cheating" (as some other programs may do). For example, the hints will not be sized or colorized like in some other programs, and it will be possible to turn them on and off. There will also be an attempt to imitate the idea of an eraser: you will be allowed to "freeze" the clues once you've entered them, then either delete everything, delete all unfreezed squares, delete cells one at a time, or simply guess and, if the guess doesn't work out, delete all that has been guessed. Without making the solving process trivial, this program aims to help the solver in fair and reasonable ways. The numbers will also be colorized to reflect different states (given, normal, autosolved, guessed, recursed, incorrect, etc.). All in all, it won't be the kind of heavily helpful program that everyone seems to be making recently, but just a helper resource. A helper resource that's versatile and looks like an actual Sudoku puzzle.