Revisando enlaces viejos me encontré con este programa para resolver sudokus escrito en JavaScript y creado por Andrei Kashcha. Seguramente su sencillez es su mayor virtud: son unas 80 líneas de código ligero, perfectamente estructurado en unas pocas funciones. Eso sí, elegante no es mucho: como puede verse actúa mediante fuerza bruta, probando uno por uno todos los posibles números candidatos en todas las posiciones.
En el array grid[] se pueden introducir los números conocidos, dejando con ceros las celdas que vayan en blanco. Luego basta ejecutar el programa (Run with JS) para obtener el resultado. Si el sudoku está mal planteado y es «imposible», quedarán celdas en blanco. Si tiene varias soluciones, se mostrará la primera de ellas. Se podría mejorar haciendo que de paso indicara si es un sudoku perfecto de solución única.
Lo he probado con el sudoku más difícil del mundo y naturalmente no ha tenido problema. Se puede usar el código para aprender, ampliarlo a sudokus más grandes o utilizar en otros proyectos, como una app que resuelva el sudoku tras leerlo con la cámara. De ese estilo hay varias por ahí.
Relacionado: