Introducción
Un rompecabezas común consiste en un tablero triangular con 15 agujeros para tees / clavijas como se muestra en la imagen a continuación:
Comenzando con todas las clavijas en el tablero, excepto por un agujero en la parte superior, el objetivo del rompecabezas es saltar las clavijas una sobre la otra como fichas, de tal manera que quede exactamente una clavija a la izquierda. El único movimiento válido es saltar una clavija sobre una clavija adyacente en cualquier dirección hacia un agujero vacío. La clavija que se saltó se retira del tablero. El juego termina cuando no quedan movimientos válidos.
Especificaciones
Su trabajo es escribir un programa que pueda encontrar una solución completa para el rompecabezas de clavijas, es decir, una que deje exactamente una clavija restante. Existen múltiples soluciones posibles, por lo que su programa solo necesita imprimir una.
- Su programa no recibirá ninguna entrada. No tiene permiso para leer datos de ninguna fuente externa.
- Imprima la lista de 13 movimientos que dan el resultado de 1 clavija restante usando este formato:
Peg 1 jumps Peg 3 to Hole 6.
- Los agujeros / clavijas están numerados de arriba a abajo, de izquierda a derecha, de modo que la clavija / agujero superior sea 1, numerando hasta que la esquina inferior derecha sea 15.
- Su programa debe encontrar la solución en tiempo de ejecución . Imprimir una solución directamente por cualquier otro medio que no sea resolverla en el programa es una descalificación automática.
- Bonificación : reciba 10 puntos de bonificación si puede generar múltiples soluciones únicas (solo puede imprimir separadas por líneas en blanco).
- Bonificación : recibe 5 puntos de bonificación si el número
15
no aparece en ninguna parte de tu código fuente.
Puntuación
Este es el código de golf, por lo que la solución más corta (por byte) que imprima una respuesta correcta será la ganadora. Los puntos de bonificación se restan de su recuento total de bytes. Proporcione una salida de muestra para ejecutar su programa, así como un enlace ideone
o algún sitio similar si es posible, demostrando la ejecución de su programa.
15=0xff=(1<4)-1=~(-1<<4)=...
15
sí mismas;)