Built with love.js
«Los Retos de Hanoi» es un programa que permite jugar al conocido rompecabezas La Torre de Hanoi y más de cincuenta variantes de este. Está hecho con el framework LÖVE basado en el lenguaje de programación Lua y se distribuyen (con licencia CC BY-SA 4.0) el código fuente y paquetes directamente ejecutables para Linux, Windows y MacOSX. Gracias a love.js es posible también ejecutarlo directamente en la web (como se puede comprobar arriba).
Código fuente (hace falta LÖVE)
La Torre de Hanoi es uno de los rompecabezas matemáticos más conocidos y antiguos. Fue propuesto y analizado por el matemático francés Édouard Lucas en 1883 y desde entonces ha sido estudiado minuciosamente por otros matemáticos y más recientemente, científicos de la computación. Si no conoce el juego puede consultar la correspondiente entrada de la Wikipedia o una página que lo analiza con cierta profundidad en este mismo sitio web.
Dos variantes tempranas son las dos siguientes:
Consiste en partir de una posición inicial aleatoria, sin tener en cuenta en esa posición inicial los diámetros de los discos, es decir, permitiendo que haya discos sobre otros más pequeños. Todos los movimientos en cambio deben respetar la regla básica de tamaños. Ya en la introducción del rompecabezas Lucas planteó la posibilidad de jugar de esta forma alternativa. El nombre Superhanoi está tomado de un artículo de 1988 de Carole S. Klein y Steven Minsker.
En su libro de 1907 The Canterbury puzzles and other curious problems, Henry Ernest Dudeney plantea un acertijo que consiste en trasladar una pila de ocho quesos de distintos tamaños de un taburete a otro usando otros dos taburetes auxiliares. Aunque no lo menciona, está claro que se trata de una variante de La Torre de Hanoi usando cuatro postes en vez de tres.
Otras variantes restringen el movimiento de los discos entre los postes. Alguna de ellas son:
No se permite llevar un disco del poste A al C ni al revés. Esto hace que sean necesarios muchos más movimientos. De hecho, equivale a resolver el rompecabezas de acuerdo con lo que hace tiempo llamé algoritmo pésimo.
En esta variante los discos solo se pueden mover de un poste al que está a su derecha, entendiendo que el poste que está a la derecha del C es el A. No es difícil pero también requiere bastantes movimientos.
Hay variantes que usan el concepto de discos reversibles, a los que se les da la vuelta en cada movimiento:
En las variantes de esta serie con discos de dos caras no puede haber en ningún momento dos discos pegados con distinto sentido. Las tres variantes incluidas se diferencian en el objetivo.
En este caso, además de no poder juntarse discos con distinto sentido hay postes en los que solo se pueden poner discos con un sentido determinado.
Hay variantes en las que hay dos o tres torres, diferenciándose por el color de sus discos.
Es una propuesta de Steven Minsker (con el nombre de Little Tower of Antwerpen) en la cual hay que intercambiar dos torres de la misma altura. Vladimir Yaroslavskly acortó la altura de los postes, haciéndolo un poco más difícil (variante Tower of Hanoi - 2). Otra variante llamada solo Amberes (Towers of Antwerpen) incluye tres torres, una en cada poste en las posiciones inicial y final.
Es de dos torres y cuatro postes, pero los dos postes inicialmente vacíos son exclusivos para discos de una sola torre.
En 1983, Toshio Akanuma inventó y comercializó un juego inspirado en la Torre de Hanoi, pero que, además de usar dos torres, incluía algunas características novedosas que lo hacían mucho más difícil:
La característica más chocante de esta versión es que los discos no pueden bajar de la altura que tenían en la posición inicial. En cambio, no se respeta la regla de no colocar un disco sobre otro más pequeño. Otro detalle importante es que si el poste central tiene un disco en la posición más alta actúa como «tapón», no dejando pasar ningún disco entre los postes A y C. Supongo que Toshio Akanuma no habría puesto torres de diez discos de haber sabido que eran precisos más de treinta mil movimientos para resolverlo.
Panex ha servido de inspiración para crear otros juegos parecidos. Uno muy interesante es este Panex Junior de Oskar van Daventer, más sencillo que el original, a pesar de tener solo dos postes y un hueco adicional (una minitorre con capacidad para un solo disco).
Otros rompecabezas inspirados en Panex y adaptados en «Los Retos de Hanoi» son KPANEX e YPANEX, de Javier Santos. Pero Javier ha creado muchas más variantes, entre ellas:
También hay que intercambiar dos torres, pero tiene la particularidad de que la regla de tamaños se aplica solo entre discos de la misma torre (es decir, del mismo color). Se añaden las dificultades de una altura limitada de los postes y una «caja» que puede provocar un atasco en el poste central. Una variante que es todo un reto.
Son variantes que incluyen discos de varios grosores.
Hay una sola torre pero dividida en dos, inicialmente con los discos más pequeños a la izquierda y los más grandes a la derecha y cada una de las pilas coronadas por un disco más grande. Los discos grandes se pueden mover libremente. Los demás, de acuerdo con la regla habitual de tamaños, pero teniendo solo en cuenta los discos que están por encima del disco grande que esté más cerca en la pila.