Las reglas visibles son sencillas
El objetivo es conectar cada pareja de números iguales mediante un camino continuo. Los movimientos son ortogonales: arriba, abajo, izquierda o derecha. Los caminos no pueden cruzarse, ramificarse, compartir una casilla ni atravesar el extremo de otra pareja.
Blupoli utiliza además la variante de cobertura total: resolver todas las parejas no es suficiente si queda una casilla vacía. Al terminar, cada celda debe pertenecer exactamente a uno de los caminos. Esa condición convierte muchas decisiones aparentemente locales en decisiones sobre todo el tablero.
Cuatro tamaños y cuatro dificultades independientes
Numberlink sigue el contrato actual de los juegos de Blupoli: tamaño y dificultad son dos ejes diferentes. Los tableros disponibles son 5×5, 6×6, 7×7 y 8×8. En cualquiera de ellos se puede elegir Fácil, Media, Difícil o Experta.
Eso importa porque un tablero grande no debería ser automáticamente «experto», ni un 5×5 debería convertirse en un tutorial sin decisiones. El nivel Fácil sigue exigiendo razonamiento: el generador rechaza parejas adyacentes triviales, exige giros en la solución y el solver debe encontrar bifurcaciones reales. Los niveles superiores aumentan el presupuesto de decisiones y la profundidad del espacio de búsqueda.
Generar la solución antes que las pistas
El generador parte de una cobertura hamiltoniana de la cuadrícula: un recorrido ortogonal que visita exactamente una vez todas las celdas. Después divide esa cobertura en varios caminos y convierte el primer y último punto de cada tramo en una pareja numerada.
Esta construcción tiene una ventaja fundamental: siempre conocemos al menos una solución válida y completa antes de mostrar el tablero. No dependemos de colocar parejas al azar y esperar que luego exista una forma de conectarlas.
La partición tampoco se acepta sin más. Cada tramo debe tener longitud suficiente, sus extremos no pueden ser vecinos inmediatos y la geometría debe alcanzar un mínimo de giros y desvíos. Con ello evitamos buena parte de los puzzles que parecen resueltos en cuanto se miran.
Una solución conocida no significa una solución única
Que el generador construya una respuesta válida sólo demuestra que el tablero es resoluble. Puede existir una segunda forma de conectar las mismas parejas y rellenar la cuadrícula. Para Numberlink eso sería un problema de calidad: el jugador podría encontrar una respuesta distinta de la prevista y seguir teniendo razón.
Por eso cada candidato pasa por un solver de búsqueda acotada. El solver extiende simultáneamente los frentes de los caminos, siempre empezando por la pareja con menos opciones disponibles. Antes de ramificar descarta estados donde una pareja ya no puede alcanzar su destino o donde una casilla vacía ha quedado estructuralmente aislada.
Durante la generación sólo necesitamos contar hasta dos. Si aparecen dos soluciones, el candidato se descarta. Si la búsqueda termina con exactamente una solución dentro del presupuesto, queda demostrada la unicidad. Si el presupuesto se agota, tampoco se publica: un resultado inconcluso no se interpreta como prueba.
La dificultad sale del solver, no de una etiqueta
El solver registra cuántos movimientos son forzados, cuántas bifurcaciones aparecen, cuándo llega la primera decisión y cuántos nodos explora. El generador utiliza especialmente las bifurcaciones para separar bandas de dificultad adaptadas al tamaño del tablero.
Las bandas no son iguales en 5×5 y 8×8 porque el espacio de estados tampoco lo es. Lo importante es que dentro de cada tamaño sean crecientes. Fácil conserva decisiones reales; Media sube el número de alternativas relevantes; Difícil exige más exploración; Experta busca candidatos con una cantidad claramente mayor de bifurcaciones antes de aceptarlos.
La dificultad no consiste en hacer fallar el generador. Un nivel difícil debe generar con fiabilidad y ser más difícil de resolver, no más difícil de producir.
Por qué cambian también las parejas
El número de parejas se calibra por tamaño y dificultad. Los niveles fáciles utilizan más caminos y, por tanto, tramos algo más cortos; los niveles altos dejan más recorrido a cada pareja y generan interacciones globales más largas. Eso se combina con las métricas del solver: no se acepta un tablero sólo porque tenga pocas parejas.
En el 5×5, donde el espacio disponible es pequeño, Difícil y Experta pueden compartir cuota de parejas y separarse por complejidad real. Así evitamos inventar una diferencia visual que no se corresponda con una diferencia lógica.
Dibujar debe sentirse como dibujar
El motor nativo está pensado para ratón y pantalla táctil. Se puede empezar desde cualquiera de los dos extremos y arrastrar por celdas adyacentes. Si el gesto vuelve a una casilla anterior del mismo camino, el tramo posterior se recorta; no hace falta borrar toda la ruta para corregir una decisión.
Las celdas de otros caminos y los extremos ajenos actúan como obstáculos. El tablero impide cruces y solapamientos mientras se juega. La pista no rellena automáticamente el puzzle: resalta el siguiente segmento útil de la solución durante unos segundos.
Deshacer y Rehacer trabajan sobre gestos completos, no sobre cada píxel recorrido. Reiniciar conserva el mismo puzzle; Nueva partida genera otra semilla. El estado se guarda localmente para poder abandonar la página y continuar después.
El tablero pertenece al shell, no a la pantalla
Numberlink usa el mismo contrato responsive que los juegos recientes de Blupoli. El motor recibe el rectángulo disponible de #game-root.game-stage y adapta dentro de él un tablero cuadrado. En escritorio el tablero crece con el espacio disponible; en móvil mantiene todas sus celdas visibles y deja los controles en las superficies comunes de la plataforma.
Los caminos se dibujan por celdas con segmentos conectados entre centros. Los extremos mantienen su número y color, de modo que el mismo tablero funciona desde 5×5 hasta 8×8 sin crear una segunda interfaz específica para pantallas pequeñas.
Qué verifica CI
- Los cuatro tamaños generan puzzles en las cuatro dificultades.
- La solución construida cubre exactamente todas las celdas.
- Todos los pasos de cada camino son ortogonales.
- No se aceptan parejas adyacentes triviales.
- El solver demuestra exactamente una solución y no alcanza su límite de búsqueda.
- El nivel Fácil conserva bifurcaciones reales y las bandas de dificultad aumentan.
- El mismo tamaño, dificultad y semilla producen el mismo puzzle.
- Las pruebas E2E comprueban que el tablero cabe dentro del shell común en móvil, portátil y escritorio.
Una historia editorial ligada a Nikoli
Numberlink lleva décadas asociado al catálogo de Nikoli. La propia retrospectiva de la editorial sobre 1988 menciona que Numberlink apareció en tamaño grande, 15×15, en el número 22 de Puzzle Communication Nikoli. Su cronología de publicaciones registra además Numberlink 1 dentro de la serie Pencil Puzzle Book en mayo de 1989.
Hoy Nikoli sigue publicando las reglas del puzzle y mantiene «ナンバーリンク» registrado como marca en Japón. En Blupoli no reutilizamos sus tableros: el generador, el solver, las semillas y la interfaz son implementación propia.
Fuentes y referencias
- Nikoli — Numberlink: reglas públicas.
- Nikoli — retrospectiva de 1988.
- Nikoli — cronología de publicaciones.
- Nikoli — marcas registradas.