Wir haben einen Brainf *** zu TinyBF Konverter, aber nicht umgekehrt, also hier ist einer.
Regeln:
- Ihr Interpreter muss ein gültiges TinyBF-Programm in einer Zeile verwenden und das entsprechende BrainF *** -Programm in einer Zeile mit optionalem nachgestellten Leerzeichen / Zeilenumbruch ausgeben. Führende Leerzeichen sind nicht zulässig
- Die Eingabe kann Zeichen enthalten oder nicht, die keines der vier TinyBF-Zeichen sind. In diesem Fall müssen Sie alle diese Zeichen an denselben Stellen drucken.
- Eine Antwort wird am 1. April akzeptiert (kein Scherz), basierend auf einigen obskuren Kriterien, die ich verwenden werde (jk;) Ich werde das kürzeste Programm akzeptieren, das nicht nach den folgenden Regeln schummelt.)
- Keine 0-Byte- oder 1-Byte-Lösungen, da dies den Spaß ruiniert, wenn Sie eine Programmiersprache nur für diesen Zweck erstellen (oder vorhanden sind).
Testfälle
Eingabe 1: +++++>+++++=>=|>>+=>>+|=>|>+=>+|
(Berechnet 5 (Byte 1) + 5 (Byte 2) = 10 (Byte 3))
Ausgabe 1:+++++>+++++<[>>+<<-]>[>+<-]
Eingabe 2: +++>++++Hi+++:P+=>=|>|>+>+=>>&&+|=>>|=>>=+!!>>=+|>>>+|
(Berechnet 3 (Byte 1) * 8 (Byte 2) = 24 (Byte 3)) Ausgabe 2:+++>++++Hi+++:P+<[>[>+>+<<&&-]>>[<<+!!>>-]<<<-]
==
ist Brainfuck.
.Antworten:
Python 2, 106 Bytes
Implementiert die TinyBF Spezifikation gefunden hier . Probieren Sie es online aus . Verbesserungen wurden unter Verwendung von Techniken aus der Antwort von @ Dica vorgenommen . Erfordert die Eingabe von Zeichenfolgen in Anführungszeichen.
quelle
r+=b.get(c,c+c)[a]*(c!='=')
. Sie können die for-Schleife auch eine Zeile lang machen, um 3 weitere zu speichern. Sie können das Diktat inline setzen, um 4 weitere zu speichern. Inlininginput()
ist eine weitere 4.raw_input
Python 3 verwenden oder zu Python 3 wechseln und die Byte-Strafe für nehmenprint
. Im Moment verstehe ichSyntaxError: invalid syntax
.Python 3, 97 Bytes
Dieses Skript basiert auf der Antwort von @ Mego
quelle