During my trip to Myrtle Beach, I was inspired to create a Sudoku Solver. One of my hosts was a self-described "Sudoku-fiend," and though he didn't "quite" manage to convert me, he did give me cause to create a solver, which I did. The solver is probably not perfect, and is certainly not optimized. However, it has (relatively quickly) solved every puzzle I've sent at it so far. It is written in C++, and is object oriented.
The operation is relatively simple. A sudoku "object" is set up with the contents of a puzzle (loaded from a file) and the solver then eliminates and deduces values for squares. If it reaches a point where it can not discover any new values, it picks a square where there can be more than one value, and for each potential new value, creates a new puzzle with that new value entered and attempts to solve it.
The program has a few somewhat-dirty shortcuts, but is overall relatively well written. It is, however, not at all advanced nor optimized. However, as it is written in C++ and not PHP or some other scripting language, it still solves a puzzle in the blink of an eye, so I don't really care too much at the moment.