]
I got bored so I wrote a Su Doku solver in Sicstus Prolog. I took about 30 minutes to write it which shows the power of constraint programs. I haven't done any extensive tests but it solved the fiendish problem from April 21st in the Times at the touch of a button. The program should run under gnu prolog with some modification as indicated in the code. Things should run under windows. I have never tried any of this but you have various choices.
Gives a randomly geneated sudoku. Don't abuse it.
| _ | 7 | _ | _ | _ | _ | 9 | _ | _ |
| 2 | _ | _ | _ | _ | 9 | _ | 5 | _ |
| _ | _ | _ | _ | 1 | _ | _ | _ | 3 |
| _ | _ | _ | _ | _ | 1 | _ | 4 | 6 |
| _ | _ | 5 | _ | _ | 4 | 8 | _ | _ |
| _ | 8 | _ | 6 | 7 | _ | _ | 2 | _ |
| 8 | _ | _ | _ | 2 | _ | _ | _ | _ |
| _ | 4 | _ | 3 | _ | 8 | _ | _ | 5 |
| _ | _ | 2 | 1 | _ | _ | _ | 7 | _ |
| _ | 7 | _ | _ | _ | _ | 9 | _ | _ |
| 2 | _ | _ | _ | _ | 9 | _ | 5 | _ |
| _ | _ | _ | _ | 1 | _ | _ | _ | 3 |
| _ | _ | _ | _ | _ | 1 | _ | 4 | 6 |
| _ | _ | 5 | _ | _ | 4 | 8 | _ | _ |
| _ | 8 | _ | 6 | 7 | _ | _ | 2 | _ |
| 8 | _ | _ | _ | 2 | _ | _ | _ | _ |
| _ | 4 | _ | 3 | _ | 8 | _ | _ | 5 |
| _ | _ | 2 | 1 | _ | _ | _ | 7 | _ |
| _ | _ | 5 | _ | _ | 6 | _ | _ | 8 |
| _ | _ | _ | _ | _ | 4 | 9 | _ | 7 |
| 1 | _ | _ | 2 | _ | _ | _ | _ | _ |
| _ | _ | 3 | _ | _ | 5 | 8 | _ | 6 |
| _ | _ | _ | _ | _ | _ | 7 | _ | _ |
| 2 | 6 | _ | 1 | _ | _ | 5 | _ | _ |
| _ | 9 | _ | 8 | 4 | 1 | _ | 5 | _ |
| _ | _ | _ | _ | _ | _ | 2 | _ | _ |
| 5 | 3 | _ | 6 | _ | _ | _ | _ | _ |
| _ | _ | _ | _ | _ | _ | _ | 4 | 2 |
| _ | _ | _ | _ | 7 | _ | 9 | _ | _ |
| _ | _ | 8 | 4 | _ | 6 | _ | _ | 5 |
| _ | _ | 3 | _ | 4 | _ | _ | _ | 7 |
| _ | 5 | _ | 6 | _ | _ | 8 | _ | 1 |
| _ | _ | 6 | _ | _ | _ | _ | 3 | _ |
| _ | 6 | _ | _ | 2 | _ | _ | 7 | _ |
| 8 | _ | _ | _ | _ | 1 | 4 | _ | _ |
| 1 | _ | 4 | 9 | 8 | _ | _ | _ | _ |
| 9 | _ | _ | _ | _ | _ | 7 | _ | _ |
| 8 | _ | 2 | _ | 1 | 7 | _ | _ | 3 |
| _ | _ | _ | _ | _ | 8 | 5 | 2 | 1 |
| _ | _ | 9 | _ | _ | _ | _ | _ | 7 |
| _ | _ | _ | 4 | 7 | 5 | _ | 1 | _ |
| _ | _ | _ | _ | _ | _ | _ | _ | _ |
| _ | _ | 4 | 7 | _ | _ | 3 | _ | 9 |
| 7 | _ | _ | 5 | _ | _ | _ | _ | _ |
| _ | 2 | _ | 8 | _ | 4 | _ | _ | _ |
| _ | 4 | _ | 2 | _ | 6 | _ | _ | _ |
| _ | 8 | _ | 3 | 7 | 1 | _ | _ | _ |
| _ | 7 | _ | _ | 4 | _ | _ | 8 | 6 |
| _ | _ | 7 | _ | _ | _ | 4 | _ | _ |
| 8 | _ | _ | _ | _ | _ | 2 | _ | _ |
| _ | _ | _ | 1 | _ | _ | _ | 3 | _ |
| _ | _ | 8 | 9 | _ | 5 | _ | _ | _ |
| _ | _ | 1 | _ | 3 | _ | 6 | 4 | _ |
| 2 | 5 | _ | 7 | _ | _ | 8 | _ | _ |
| _ | _ | 1 | 7 | 3 | 2 | _ | 6 | _ |
| 3 | _ | 6 | _ | 5 | _ | 8 | _ | 7 |
| _ | _ | _ | 4 | _ | _ | _ | 3 | 5 |
| _ | _ | _ | 6 | _ | _ | _ | _ | _ |
| _ | 9 | _ | _ | _ | 5 | 6 | 7 | 3 |
| _ | 8 | 5 | _ | 7 | _ | _ | _ | _ |
| 5 | _ | _ | _ | _ | 6 | _ | _ | _ |
| _ | _ | _ | 2 | 9 | _ | _ | _ | _ |
| _ | 3 | 2 | _ | _ | _ | _ | 9 | _ |
| 7 | 1 | 2 | _ | 3 | _ | 4 | _ | _ |
| 6 | _ | _ | 7 | 8 | _ | _ | _ | 9 |
| 9 | _ | _ | _ | _ | _ | _ | 2 | _ |
| _ | _ | _ | _ | 9 | 6 | _ | _ | _ |
| _ | _ | 9 | _ | _ | 5 | _ | _ | 6 |
| 4 | 7 | _ | 3 | _ | _ | _ | _ | _ |
| 1 | _ | _ | _ | 5 | _ | 2 | _ | _ |
| 8 | 2 | 3 | _ | _ | _ | _ | 9 | _ |
| _ | _ | _ | _ | _ | _ | 7 | _ | _ |
Most of these can be solved by looking for pinned squares and naked sets.
| _ | _ | _ | _ | 9 | 4 | _ | 2 | 6 |
| _ | _ | _ | 2 | _ | 7 | 3 | _ | _ |
| _ | _ | _ | _ | _ | 3 | _ | 4 | _ |
| _ | 5 | _ | _ | _ | 1 | _ | _ | _ |
| 1 | _ | _ | _ | _ | _ | _ | 3 | 4 |
| 4 | 2 | 3 | 7 | _ | _ | 6 | _ | _ |
| _ | 4 | _ | _ | _ | 6 | _ | _ | 7 |
| 8 | _ | 1 | _ | 7 | _ | _ | _ | _ |
| 6 | _ | _ | _ | 4 | _ | 9 | _ | _ |
| _ | _ | _ | 3 | _ | _ | 1 | 4 | _ |
| _ | _ | 1 | _ | 9 | _ | _ | 7 | _ |
| _ | 7 | _ | _ | 4 | _ | _ | _ | _ |
| 3 | _ | _ | _ | _ | _ | 9 | 5 | _ |
| _ | 6 | 9 | _ | _ | _ | _ | _ | _ |
| _ | _ | _ | _ | _ | _ | 7 | _ | 1 |
| 6 | _ | _ | 8 | _ | 4 | _ | _ | 2 |
| 9 | 4 | _ | 5 | _ | _ | _ | _ | _ |
| _ | _ | _ | _ | _ | 1 | 6 | _ | _ |
Or this one?
| _ | _ | 2 | _ | _ | 4 | 6 | _ | 8 |
| _ | _ | _ | 2 | _ | _ | _ | 1 | _ |
| 3 | _ | 6 | _ | _ | 8 | _ | _ | 9 |
| _ | 3 | _ | _ | 5 | _ | _ | _ | _ |
| _ | _ | _ | 8 | _ | _ | 4 | _ | _ |
| 4 | _ | 7 | _ | _ | _ | _ | _ | 2 |
| 7 | _ | _ | _ | 6 | _ | _ | 9 | _ |
| _ | 8 | _ | _ | _ | _ | 7 | _ | _ |
| 6 | _ | 1 | _ | _ | 2 | _ | _ | _ |