Cómo se juega
Las casillas blancas se rellenan con dígitos del 1 al 9. Cada celda negra de pista puede indicar la suma del tramo de casillas blancas situado a su derecha, debajo o en ambas direcciones. Dentro de cada tramo no se puede repetir ningún dígito.
La gracia aparece en los cruces. Una casilla pertenece simultáneamente a una suma horizontal y a otra vertical: las combinaciones compatibles de un lado eliminan posibilidades del otro hasta que toda la red queda determinada.
Un poco de historia
Nikoli explica que Kakuro apareció en Puzzle Communication Nikoli Vol. 11 y acabó convirtiéndose en uno de sus puzzles más conocidos. En Occidente la familia se relaciona también con los antiguos Cross Sums. Aunque el aspecto recuerda a un crucigrama, aquí las palabras se sustituyen por conjuntos de dígitos y sumas.
La primera implementación web: segura, pero demasiado modular
Nuestra primera versión tenía una prioridad muy concreta: ser instantánea en navegador y garantizar unicidad de forma sencilla. Para lograrlo dividimos el tablero en módulos Kakuro 2×2 independientes. Cada módulo tenía una única solución demostrable y, por construcción, la cuadrícula completa también.
Funcionaba, pasaba CI y ofrecía cuatro tamaños y cuatro dificultades. Sin embargo, al revisarla después de completar más juegos, vimos el defecto evidente: un Kakuro grande no debería sentirse como veinte Kakuros diminutos pegados. Faltaba la dependencia global entre pistas.
Kakuro v2: una sola red de restricciones
La app Android de PuzzleHub lleva mucho más tiempo trabajando este problema y nos sirvió como referencia conceptual: primero se construye una geometría, después se crea una solución y por último se derivan las pistas. La versión web v2 conserva esa idea, pero la adapta a una restricción importante del navegador: una partida debe aparecer de inmediato y no depender de que un generador pesado encuentre una semilla buena.
Por eso la versión final utiliza una familia de 16 bases originales generadas y verificadas, una para cada combinación de cuatro tamaños y cuatro dificultades. Cada base forma una red conectada: todas las casillas jugables pertenecen a un tramo horizontal y a otro vertical, y los tramos se cruzan entre sí en lugar de vivir como minipuzzles independientes.
Crear la solución antes de crear las pistas
Para construir esas bases partimos de una solución válida y calculamos después las sumas de cada tramo. Durante el proceso se controla que no exista ningún dígito repetido dentro del mismo grupo. Una segunda fase ignora por completo la solución original y vuelve a resolver el puzzle utilizando únicamente su geometría y sus pistas.
El objetivo no es demostrar que existe una solución, sino demostrar que no existe una segunda. El contador se detiene al encontrar dos respuestas; cualquier base ambigua se descarta.
Por qué no regeneramos todo en cada partida
La primera tentativa de Kakuro v2 intentaba inventar topología, solución y pistas en cada ejecución. Era correcta en concepto, pero la unicidad hacía que algunas semillas —especialmente en 6×6 Fácil— obligaran a repetir demasiadas búsquedas. Ese coste no tiene sentido para una web en la que el jugador espera pulsar “Nueva partida” y empezar inmediatamente.
La solución fue separar creación y distribución. CI realiza el trabajo caro: verifica exhaustivamente las bases canónicas y también las variantes que expone el navegador. En tiempo de juego solo aplicamos transformaciones que preservan el problema: rotaciones y reflejos dentro del área jugable y, en algunas variantes, el complemento de dígitos d → 10 − d. Esta última transformación convierte una suma de S sobre k casillas en 10k − S, conservando de forma biyectiva las soluciones.
Cuatro tamaños
Kakuro v2 ofrece 6×6, 8×8, 10×10 y 12×12. El tamaño es independiente de la dificultad: un 6×6 Experto puede exigir más deducción combinatoria que un 12×12 Fácil, mientras que el tablero grande aumenta la cantidad total de cruces que hay que mantener en mente.
Cuatro dificultades basadas en combinaciones
El valor de una suma por sí solo no indica dificultad. Lo importante es cuántos conjuntos distintos de dígitos pueden producirla sin repetir números. Por ejemplo, algunas pistas de dos o tres casillas tienen una única combinación posible; otras admiten varias.
Fácil usa únicamente pistas cuya longitud+suma tiene una sola combinación. Normal introduce pistas con hasta dos combinaciones. Difícil aumenta la ambigüedad hasta cuatro combinaciones y Experto selecciona bases con una ambigüedad media todavía mayor dentro de ese rango, de modo que el jugador deba cruzar más información antes de fijar un número.
El motor calcula esa ambigüedad media y el selfTest() exige que aumente al avanzar por los cuatro niveles para cada uno de los tamaños.
Qué verifica CI
Las 16 combinaciones tamaño × dificultad se reconstruyen en CI y cada una se prueba con sus 16 variantes geométricas/complementarias. Para cada caso se comprueba que la red es conectada, que todos los tramos contienen entre dos y nueve casillas, que cada casilla pertenece exactamente a dos runs, que la solución almacenada cumple todas las sumas y que un solver independiente encuentra exactamente una solución.
Además, las variantes visuales no contienen datasets externos: son transformaciones de bases originales de PuzzleHub. Esto nos permite ampliar la familia más adelante sin depender de tableros copiados de otras webs o aplicaciones.
Juegos parecidos
Si te gusta Kakuro, prueba Sudoku, KenKen y Math Crossword. Sudoku comparte el razonamiento por exclusión, KenKen combina grupos y operaciones, y Math Crossword lleva las relaciones aritméticas a una estructura de ecuaciones cruzadas.
Fuentes y referencias
Reglas e historia: Nikoli — Kakuro. Para la arquitectura conceptual del generador también utilizamos como referencia la implementación propia de PuzzleHub Android, especialmente su separación entre topología, solución y cálculo de pistas.