Temos um conversor Brainf *** para TinyBF, mas não o contrário, então aqui está um.
Regras:
- Seu intérprete deve usar um programa TinyBF válido, em uma linha, e deve emitir o programa BrainF *** correspondente, em uma linha, com espaço em branco / nova linha à direita opcional. Nenhum espaço em branco à esquerda é permitido
- A entrada pode ou não conter caracteres que não são nenhum dos quatro caracteres do TinyBF. Nesse caso, você deve imprimir todos esses caracteres nos mesmos pontos.
- Uma resposta será aceita em 1º de abril (sem brincadeiras), com base em alguns critérios obscuros que usarei (jk;) Aceitarei o programa mais curto que não trapaceie pelas seguintes regras)
- Não há soluções de 0 ou 1 byte, porque isso estraga a diversão se você criar (ou houver) uma linguagem de programação apenas para essa finalidade)
Casos de teste
Entrada 1: +++++>+++++=>=|>>+=>>+|=>|>+=>+|
(Calcula 5 (byte 1) + 5 (byte 2) = 10 (byte 3))
Saída 1:+++++>+++++<[>>+<<-]>[>+<-]
Entrada 2: +++>++++Hi+++:P+=>=|>|>+>+=>>&&+|=>>|=>>=+!!>>=+|>>>+|
(Calcula 3 (byte 1) * 8 (byte 2) = 24 (byte 3)) Saída 2:+++>++++Hi+++:P+<[>[>+>+<<&&-]>>[<<+!!>>-]<<<-]
==
é do cérebro.
.Respostas:
Python 2, 106 bytes
Implementa a especificação TinyBF como encontrada aqui . Experimente online . As melhorias foram feitas usando técnicas da resposta de @ Dica . Requer entrada de string entre aspas.
fonte
r+=b.get(c,c+c)[a]*(c!='=')
. Você também pode fazer o loop for uma linha para economizar mais 3. Você pode alinhar o ditado para economizar mais 4. Inlininginput()
é outro 4.raw_input
ou alternar para o Python 3 e aplicar a penalidade de bytesprint
. Agora eu entendoSyntaxError: invalid syntax
.Python 3, 97 bytes
Este script é baseado na resposta de @ Mego
fonte