Gran tutorial donde se explica paso a paso toda la teoría para resolver cualquier sudoku de 9x9 para luego implementarlo en nuestro querido Python.
Para realizarlo, utiliza dos técnicas, una es la llamada "constraint propagation" y la otra es usar algoritmos de búsqueda.
Aquí tienes el programa completo.
Según el autor Peter Norvig (que por cierto, no le gustan los sudokus y dice que son el ataque de Denegación de Servicio humano), los Sudokus más difíciles los puede resolver en 0,01 segundos.
En este enlace tienes el .txt con los 95 más difíciles y en este otro 50 fáciles (el autor los ha recopilado desde varias webs en estos .txt).
Además aquí tienes otros enlaces donde se implementa en varios lenguajes:
- C# with LINQ version by Richard Birkby
- Clojure version by Justin Kramer
- Erlang version by Andreas Pauley
- Haskell version by Emmanuel Delaborde
- Java version by Johannes Brodwall
- Javascript version by Brendan Eich
- Javascript version by Pankaj Kumar
- Ruby version by Luddite Geek
- Ruby version by Martin-Louis Bright