La regla central

El tablero contiene varias figuras formadas por cuadrados. Todas pertenecen a una teselación completa del rectángulo objetivo, pero empiezan giradas, solapadas y, en muchos casos, parcialmente fuera del marco.

No puedes coger una pieza y arrastrarla. Cada movimiento es un giro de 90 grados alrededor de uno de sus tirafondos. En una pieza de un solo eje eso cambia la orientación alrededor de un punto estable; en una pieza con dos ejes, alternar entre A y B permite que la figura avance por la cuadrícula mediante una secuencia de rotaciones.

El movimiento también es parte del puzzleNo basta con imaginar dónde debería terminar una figura: hay que descubrir una secuencia de pivotes que pueda llevarla hasta allí.

De Flipart a una mecánica propia

Uno de los referentes que exploramos antes de diseñar PolyPivot fue Flipart, el juego publicado dentro de Puzzmo. Una descripción contemporánea de Puzzmo resume su idea como encajar piezas irregulares de cuadrados dentro de una caja rotándolas desde puntos fijos; también señala que las posiciones iniciales pueden estar fuertemente solapadas. Puede consultarse en MSSV.

No queríamos reproducir esa implementación. PolyPivot cambia el modelo de movimiento: los ejes pertenecen a la propia pieza y las figuras con dos tirafondos pueden desplazarse alternando pivotes. También convertimos el solapamiento en un lenguaje visual explícito mediante mezcla cromática y construimos tamaños, generación, niveles, interfaz y código propios.

Por qué hablamos de poliominós

La familia matemática es mucho más antigua que cualquier videojuego moderno. La ETH Zürich define un poliominó como una figura compuesta por cuadrados iguales conectados por lados y recuerda que muchos juegos de geometría combinatoria consisten precisamente en cubrir un rectángulo con esas piezas. La misma fuente sitúa un problema de pentominós de Henry Ernest Dudeney en 1907 y la acuñación del término polyomino por Solomon W. Golomb en 1953. Puede consultarse en la ETH Library.

PolyPivot utiliza esa tradición de teselación como punto de partida, pero añade una restricción cinemática: la pieza no solo tiene una forma, también tiene una forma concreta de poder llegar hasta su posición final.

Los tirafondos no son decoración

Cada eje está representado como una cabeza de tirafondo con ranura en cruz. Pulsarla hace girar la pieza alrededor de esa celda. Cuando hay dos ejes aparecen marcados como A y B y el jugador puede alternarlos.

Eso produce una propiedad que queríamos desde el principio: una pieza de doble eje puede «caminar». Un giro alrededor de A mueve la posición de B; el siguiente giro alrededor de B conserva ahora ese nuevo punto y desplaza A. La secuencia recuerda a un compás articulado avanzando por la cuadrícula, pero con una silueta irregular alrededor.

Solaparse no bloquea: mezcla

Durante la resolución permitimos que dos o más piezas ocupen la misma celda. En lugar de convertirla inmediatamente en una casilla roja de error, calculamos una mezcla de sus colores y la mostramos directamente en el tablero. El contorno de la pieza seleccionada permanece visible para que las zonas densas sigan siendo legibles.

El objetivo final sí es estricto: no puede quedar ninguna celda fuera del marco, ningún solapamiento y ningún hueco. Como el área total de las piezas coincide exactamente con el área del tablero, esas tres condiciones forman una comprobación muy clara.

Cuatro tableros realmente grandes

Los tamaños son 10×8, 12×10, 14×12 y 16×14. No queríamos presentar como «grande» una variación mínima de una cuadrícula pequeña. Incluso el primer nivel contiene suficiente superficie para que la orientación y el espacio de trabajo importen.

Tamaño y dificultad son controles separados. La dificultad cambia el número de piezas, la proporción de figuras con doble eje y cuántas rotaciones se utilizan para desordenar el estado inicial. Experto no es simplemente «el mismo puzzle con un tablero mayor»: produce más fragmentación, más dobles pivotes y secuencias de retorno más largas.

Generar hacia atrás para garantizar que hay salida

El generador empieza por la solución. Primero divide todo el rectángulo en regiones conectadas; cada región será una pieza. Después elige un eje central y, según la dificultad, puede añadir un segundo eje alejado del primero.

Desde esa teselación válida aplicamos una secuencia de giros legales. Guardamos cada giro y su pivote. Esto significa que siempre existe al menos una ruta comprobable de regreso: invertir el orden de los movimientos y el sentido de cada rotación reconstruye la teselación original.

El selfTest() del motor recorre los cuatro tamaños y las cuatro dificultades con varias semillas. Comprueba que todas las piezas son conexas, que cubren exactamente el área objetivo en el estado resuelto, que los pivotes apuntan a celdas válidas y que la secuencia inversa resuelve de verdad cada tablero generado.

Dificultad visual frente a dificultad geométrica

Hay dos fuentes de complejidad. La primera es visual: muchas piezas superpuestas producen nuevos colores y hacen menos evidente la silueta original. La segunda es geométrica: un doble eje amplía muchísimo el espacio de estados porque elegir A o B cambia qué posiciones serán posibles en los siguientes giros.

Por eso la pista de PolyPivot no revela una rotación concreta. Busca la pieza con mayor conflicto —celdas fuera del marco y zonas solapadas— y la selecciona. Queremos orientar la atención sin convertir la ayuda en un botón de reproducción automática de la solución.

Ratón, táctil y teclado

Los tirafondos son controles interactivos: tocarlos o pulsarlos con teclado realiza el giro horario. También puedes seleccionar una pieza y utilizar los botones de giro a izquierda y derecha, cambiar de eje con un control dedicado y usar Q, E y X como atajos de teclado.

El estado de la partida se guarda localmente. Tamaño, dificultad, variante, posición actual de cada pieza y contador de movimientos pueden restaurarse al volver, sin crear una cuenta.

Qué aporta al catálogo de Blupoli

PolyPivot encaja en Lógica espacial, Colocación y Patrones y deducción. Comparte con TriangleBlocks la idea de cubrir una superficie con piezas conectadas, pero cambia el problema de «dónde colocar» por «cómo llegar»: aquí la secuencia de transformaciones es tan importante como el destino.

Jugar PolyPivot en Blupoli Puzzles