La segmentación de líneas consiste en tratar las casillas vacías confirmadas como fronteras rígidas que dividen una fila o columna en regiones abiertas más pequeñas.
En lugar de resolver una línea larga una y otra vez, pasas a resolver una secuencia de segmentos más cortos y restringidos.
Por qué la segmentación es tan útil
Un bloque de pista nunca puede atravesar una casilla vacía confirmada. Cada X elimina colocaciones y puede separar bloques que antes competían por el mismo espacio.
A medida que una línea se segmenta, suele ser posible determinar:
- qué pistas caben en cada región;
- qué pistas no pueden compartir un segmento;
- si un segmento es un encaje exacto;
- si un segmento es demasiado pequeño y debe quedar vacío;
- si un fragmento relleno conocido pertenece a una pista concreta.
La segmentación no añade una regla nueva. Hace que las restricciones que ya existían sean mucho más visibles.
Ejemplo: un separador obliga a repartir las pistas
Considera una línea de 12 casillas con pistas 4 3 y una casilla vacía confirmada en la posición 6:
????? × ??????
La línea queda dividida en un segmento de cinco casillas a la izquierda y otro de seis a la derecha.
Las pistas 4 3 necesitan una extensión mínima de ocho casillas si estuvieran en el mismo segmento: cuatro rellenas, un separador obligatorio y tres rellenas.
Ninguno de los segmentos mide ocho casillas, de modo que los dos bloques no pueden estar juntos en el mismo lado de la X.
Como el orden de las pistas es fijo, el 4 debe ocupar el segmento izquierdo y el 3 el derecho.
Una única casilla separadora ha convertido un problema de 12 casillas en dos problemas de colocación más pequeños.
Un segmento no es automáticamente independiente
No supongas que cada región abierta puede resolverse sin mirar el resto de la línea.
Los segmentos solo son plenamente independientes cuando sabes qué bloques de pista pertenecen a cada uno. Antes de demostrar esa asignación, una misma pista puede conservar alternativas en varios segmentos.
Por ejemplo, una pista corta podría caber a ambos lados de una X mientras que una pista larga solo cabe en uno. Hasta que la asignación esté fijada debes seguir teniendo en cuenta tanto el orden como la capacidad de todos los segmentos.
Segmentación después de completar bloques
Un bloque completado junto con su separador funciona como una frontera estructural.
Una vez identificado ese bloque, las pistas pendientes que lo preceden tienen que permanecer a un lado y las que lo siguen al otro. Esto suele ser más potente que una X aislada porque además conoces la posición del bloque dentro de la secuencia de pistas.
Capacidad de un segmento
Para cada segmento abierto, compara su longitud con la extensión mínima de los grupos de pistas que podrían ocuparlo.
Si un segmento mide 7:
- la pista
5cabe; - las pistas
2 3requieren2 + 1 + 3 = 6, así que caben juntas; - las pistas
3 4requieren 8, así que no pueden convivir en ese segmento.
Estas comprobaciones de capacidad son la base de la asignación de pistas a segmentos.
Encaje exacto y solapamiento dentro de un segmento
Cuando una pista o grupo de pistas ya está asignado a un segmento, puedes reutilizar dentro de él las técnicas que aprendiste para líneas completas.
Si las pistas asignadas consumen exactamente el segmento, aplica encaje exacto.
Si existe poca holgura, busca solapamiento.
Si una casilla rellena confirmada ancla uno de los bloques, recalcula su alcance dentro del segmento en vez de hacerlo sobre toda la línea original.
Flujo paso a paso para segmentar una línea
- marca como X únicamente casillas vacías confirmadas;
- identifica cada segmento abierto contiguo;
- enumera los bloques pendientes respetando su orden;
- calcula qué pistas o grupos consecutivos caben en cada segmento;
- elimina asignaciones imposibles;
- cuando una asignación sea forzada, resuelve ese segmento con técnicas normales de línea;
- propaga las nuevas casillas rellenas y vacías a las líneas cruzadas.
Errores frecuentes
Tratar casillas desconocidas como fronteras
Solo una casilla vacía confirmada bloquea un run. Una casilla desconocida sigue formando parte del espacio disponible.
Asignar pistas demasiado pronto
Que una pista quepa en un segmento no significa que ese sea su único destino legal.
Olvidar el hueco obligatorio al probar varias pistas
Dos bloques monocromos necesitan al menos una casilla vacía entre ellos, también cuando comparten el mismo segmento abierto.
Perder el orden de las pistas entre segmentos
La primera pista pendiente no puede aparecer después de una pista posterior. Las asignaciones siempre deben preservar la secuencia original.
Qué aprender después
El siguiente paso es asignar explícitamente las pistas a los segmentos. Esa técnica convierte capacidad, orden y fragmentos rellenos conocidos en pruebas de qué bloque pertenece a cada región.
Preguntas frecuentes
¿Cada X divide estructuralmente una línea?
Sí, aunque eso no significa que las pistas a cada lado ya estén asignadas.
¿Puede haber varias pistas dentro del mismo segmento?
Sí, siempre que sus bloques y los huecos obligatorios entre ellos quepan y se respete el orden.
¿Puede un segmento no contener ninguna pista?
Sí. Si ninguna pista pendiente compatible puede ocuparlo, la eliminación de huecos permite marcarlo entero como vacío.