Seu desafio é transformar o texto de entrada no código de quebra-cérebro que produzirá o texto.
Tutorial tirado daqui com permissão aqui
Brain-Flak tem duas pilhas, conhecidas como 'esquerda' e 'direita'. A pilha ativa começa na esquerda. Se uma pilha vazia for exibida, ele retornará 0. É isso. Sem outras variáveis. Quando o programa é iniciado, cada argumento da linha de comando é enviado para a pilha ativa.
Os únicos caracteres válidos em um programa Brain-Flak são ()[]{}<>
e sempre devem ser equilibrados. Existem dois tipos de funções: Nilads e Mônadas . Um nilad é uma função que recebe 0 argumentos. Aqui estão todas as niladas:
()
Avalia para um.[]
Avalia a altura da pilha atual.{}
Pop a pilha ativa. Avalia para o valor popped.<>
Alterne a pilha ativa. Avalia para zero.
Eles são concatenados juntos quando são avaliados. Portanto, se tivéssemos um '3' no topo da pilha ativa, este trecho:
()(){}
avaliaria para 1 + 1 + active.pop()
qual avaliaria para 5.
As mônadas têm um argumento, um pedaço do código Brain-Flak. Aqui estão todas as mônadas:
(n)
Pressione 'n' na pilha ativa.[n]
Avalia como negativo 'n'{foo}
Embora zero não esteja no topo da pilha, foo.<foo>
Execute foo, mas avalie-o como 0.
Essas funções também retornarão o valor dentro delas, portanto
(()()())
Vai empurrar 3, mas
((()()()))
Empurrará 3 duas vezes .
O {}
irá avaliar a soma de todas as execuções. Então, se tivéssemos '3' e '4' no topo da pilha:
{{}}
avaliaria como 7.
Quando o programa é executado, cada valor restante na pilha ativa é impresso, com uma nova linha entre. Os valores na outra pilha são ignorados.
Regras
- Você pode assumir que o Brain-Flak está sendo executado com ascii out. (
-A
) - O código de falha cerebral NÃO deve exigir entrada
- Todas as regras padrão se aplicam
- O código deve ser executado dentro de 1 minuto para qualquer entrada de até 1024 bytes no TIO. (Se nenhuma saída TIO estiver disponível, forneça um intérprete e eu o executarei na minha máquina (minha máquina poderá chegar perto do TIO)).
- Você deve suportar entrada arbitrária de comprimento.
- Você pode receber informações de um arquivo.
- Otimização para casos de teste não é permitida
- Saída determinística é necessária
- Os programas não precisam ser limpos com pilha
Casos de teste (tente seu código com eles, os textos de pontuação reais serão liberados em uma a duas semanas após o lançamento do desafio)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
The meaning of brain-flak is to flak your brain with pain.
`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?
To be, or not to be, that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles
And by opposing end them. To die-to sleep,
No more; and by a sleep to say we die
<your brain-flak code here>
The fitness pacer test is a multi stage test. Avacado Avacado Avacadad Avacadad carrot.bat carrot.jar carrot.carrot Quack Quack Quack Quack Quack Quack Quack Quack Quack downgoat doawngoat down down gaot
This challenge came from a online program that turned text into brain-fuck. However brain-fuck has limitations and it is not nearly as cool as brain-flak. I really am looking forward to cool programs :) I am glad you took the time to read this and look forward to seeing your answer.
Ganhando
Para ganhar, você deve fornecer o comprimento total do código de falha cerebral fornecido por cada um dos casos de teste, que será lançado 1-2 semanas após a data de postagem. O menor comprimento total vence.
NOTA!!!!!!:
Isso não é código-golfe , o comprimento do seu código não afetará sua pontuação final de forma alguma. Tornar o código legível limpo é apreciado. Obrigado!
Casos de teste
<your brain-flak code here>
abaixo de 1000 recebe a recompensa. Que não posso postar por outro dia, gritos; não percebeu como isso era novo.