Joe é o seu desenvolvedor BF médio. Ele está prestes a verificar suas alterações de código no repositório quando receber uma ligação de seu chefe. "Joe! A máquina do novo cliente está quebrada! O intérprete de brainfuck define todas as células para valores aleatórios antes da execução do programa. Sem tempo para consertá-lo, seu código terá que lidar com isso." Joe não pensa muito sobre isso e está prestes a escrever um programa para zerar o primeiro milhão de células, quando seu chefe o interrompe novamente - "... e não pensa em usar força bruta, o código precisa ser o menor possível. " Agora você tem que ajudar o pobre Joe!
Especificações
- Você receberá algum código válido do brainfuck como entrada
- Seu programa modificará o código para que ele funcione em um intérprete aleatório de cérebro
- Isso significa que antes da execução do programa, as células podem ser configuradas para qualquer valor.
- O novo programa deve ter exatamente o mesmo comportamento, independentemente das condições iniciais.
- O intérprete terá um valor máximo de célula de 255 com quebra automática e uma fita de comprimento infinito.
Pontuação
Sua pontuação é 10 vezes o tamanho do compilador em bytes mais a soma dos tamanhos dos casos de teste . A pontuação mais baixa obviamente vence. Para atenuar a otimização de casos de teste, reservo-me o direito de alterar os casos de teste, se suspeitar de alguma coisa, e provavelmente o fará antes de escolher um vencedor.
Casos de teste
( Comprei na página esolangs e nesta página: http://www.hevanet.com/cristofd/brainfuck/ ). Também obrigado a @Sparr pelo último caso de teste.
- Olá Mundo:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
- Entrada reversa:
>,[>,]<[.<]
- Poderes de Dois (Fluxo Infinito):
>++++++++++>>+<+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<]>.>[->[ <++>-[<++>-[<++>-[<++>-[<-------->>[-]++<-[<++>-]]]]]]<[>+<-]+>>]<<]
- Quadrados abaixo de 10000:
++++[>+++++<-]>[<+++++>-]+<+[>[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+>>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]<<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]
- Fluxo de Fibonacci:
>++++++++++>+>+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[[-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>>]<<<]
- Sequência ASCII até a entrada:
,[.[>+<-]>-]
(Esta requer vários números de células com base na entrada)