I've spent all Sunday afternoon on a difficult one from a newspaper and just cannot move forward. Since I'm a programmer, the logical step was to create a program. It took 1.5 hours. Not much, comparing to 4 hours of struggle without the results.
Here is the program: http://www.geocities.com/lptscope/SudokuSolver.zip
The source in MS Visual C++ 6.0 is included.
The principle of work is very simple. It recurses through all the positions and all the possible values until solved. It takes no more than a few seconds even for the hardest ones.
It always finds a solution, even if there are several possible solutions.
After I wrote that program I became aware that (like other things in life) somebody already did it. But, I hope my version will help someone learning VC++ and MFC.