Introdução
Um quebra-cabeça comum envolve uma placa triangular com 15 furos para tees / pegs, conforme mostrado na imagem abaixo:
Começando com todos os pinos no tabuleiro, com exceção de um buraco no topo, o objetivo do quebra-cabeça é pular pinos uns sobre os outros como damas, de modo a deixar exatamente um pino à esquerda. O único movimento válido é pular uma estaca sobre uma estaca adjacente em qualquer direção para um buraco vazio. O pino que foi pulado é então removido do tabuleiro. O jogo termina quando não houver jogadas válidas.
Spec
Seu trabalho é escrever um programa que encontre uma solução completa para o quebra-cabeça do pino, ou seja, um que deixe exatamente um pino à esquerda. Existem várias soluções possíveis, portanto, seu programa só precisa imprimir uma.
- Seu programa não receberá nenhuma entrada. Você não tem permissão para ler dados de nenhuma fonte externa.
- Imprima a lista de 13 movimentos que resultam em 1 peg restante usando este formato:
Peg 1 jumps Peg 3 to Hole 6.
- Os furos / pinos são numerados de cima para baixo, da esquerda para a direita, de modo que o pino / furo superior seja 1, numerando até o canto inferior direito ser 15.
- Seu programa deve encontrar a solução em tempo de execução . Imprimir uma solução diretamente por qualquer outro meio que não seja resolvê-la no programa é uma desqualificação automática.
- Bônus : receba 10 pontos de bônus se puder gerar várias soluções exclusivas (basta imprimir separadas por linhas em branco).
- Bônus : receba 5 pontos de bônus se o número
15
não aparecer em nenhum lugar no seu código-fonte.
Pontuação
Isso é código-golfe, então a solução mais curta (por contagem de bytes) que imprime uma resposta correta será a vencedora. Os pontos de bônus são subtraídos da sua contagem total de bytes. Forneça uma amostra de saída da execução do seu programa, bem como um link para ideone
algum site semelhante, se possível, demonstrando a execução do seu programa.
15=0xff=(1<4)-1=~(-1<<4)=...
15
si mesmo;)