Tenemos un convertidor Brainf *** a TinyBF, pero no al revés, así que aquí hay uno.
Reglas:
- Su intérprete debe tomar un programa TinyBF válido, en una línea, y debe generar el programa BrainF *** correspondiente, en una línea, con espacios en blanco / nueva línea opcionales. No se permiten espacios en blanco iniciales
- La entrada puede o no contener caracteres que no sean ninguno de los cuatro caracteres TinyBF. Si es así, debe imprimir todos estos caracteres en los mismos lugares.
- Se aceptará una respuesta el 1 de abril (no es broma), según algunos criterios oscuros que usaré (jk;) Aceptaré el programa más corto que no haga trampa con las siguientes reglas)
- No hay soluciones de 0 bytes o 1 byte, porque arruina la diversión si crea (o hay) un lenguaje de programación solo para este propósito)
Casos de prueba
Entrada 1: +++++>+++++=>=|>>+=>>+|=>|>+=>+|
(Calcula 5 (byte 1) + 5 (byte 2) = 10 (byte 3))
Salida 1:+++++>+++++<[>>+<<-]>[>+<-]
Entrada 2: +++>++++Hi+++:P+=>=|>|>+>+=>>&&+|=>>|=>>=+!!>>=+|>>>+|
(Calcula 3 (byte 1) * 8 (byte 2) = 24 (byte 3)) Salida 2:+++>++++Hi+++:P+<[>[>+>+<<&&-]>>[<<+!!>>-]<<<-]
==
es una mierda de cerebro.
.Respuestas:
Python 2, 106 bytes
Implementa la especificación TinyBF como se encuentra aquí . Pruébalo en línea . Se realizaron mejoras utilizando técnicas de la respuesta de @ Dica . Requiere entrada de cadena entre comillas.
fuente
r+=b.get(c,c+c)[a]*(c!='=')
. También puede hacer que el bucle for una línea para guardar 3 más. Puede insertar el dict para guardar 4 más. La alineacióninput()
es otra 4.raw_input
o cambiar a Python 3 y tomar la penalización de bytesprint
. En este momento lo entiendoSyntaxError: invalid syntax
.Python 3, 97 bytes
Este script se basa en la respuesta de @ Mego
fuente