Mamy konwerter Brainf *** na TinyBF, ale nie na odwrót, więc oto jeden.
Zasady:
- Twój tłumacz musi wziąć poprawny program TinyBF, w jednym wierszu, i musi wypisać odpowiedni program BrainF ***, w jednym wierszu, z opcjonalnym końcowym białym znakiem / nową linią. Żadne wiodące białe znaki nie są dozwolone
- Dane wejściowe mogą, ale nie muszą zawierać znaków, które nie są żadnym z czterech znaków TinyBF. Jeśli tak, musisz wydrukować wszystkie te postacie w tych samych miejscach.
- Odpowiedź zostanie zaakceptowana 1 kwietnia (nie żartuję), w oparciu o pewne niejasne kryteria, których użyję (jk;) Akceptuję najkrótszy program, który nie oszukuje według następujących zasad)
- Brak rozwiązań 0-bajtowych lub 1-bajtowych, ponieważ psuje zabawę, jeśli tworzysz (lub istnieje) język programowania tylko do tego celu)
Przypadki testowe
Wejście 1: +++++>+++++=>=|>>+=>>+|=>|>+=>+|
(Oblicza 5 (bajt 1) + 5 (bajt 2) = 10 (bajt 3))
Wyjście 1:+++++>+++++<[>>+<<-]>[>+<-]
Wejście 2: +++>++++Hi+++:P+=>=|>|>+>+=>>&&+|=>>|=>>=+!!>>=+|>>>+|
(oblicza 3 (bajt 1) * 8 (bajt 2) = 24 (bajt 3)) Wyjście 2:+++>++++Hi+++:P+<[>[>+>+<<&&-]>>[<<+!!>>-]<<<-]
==
należy do pieprzenia mózgu.
.Odpowiedzi:
Python 2, 106 bajtów
Implementuje specyfikację TinyBF, jak tutaj . Wypróbuj online . Wprowadzono ulepszenia przy użyciu technik z odpowiedzi @ Dica . Wymaga wprowadzenia ciągu znaków cytowanych.
źródło
r+=b.get(c,c+c)[a]*(c!='=')
. Możesz także utworzyć jedną pętlę for, aby zapisać 3 kolejne. Możesz wstawić dyktę, aby zapisać 4 kolejne. Inlininginput()
to kolejna 4.raw_input
Pythona 3 lub przełączyć się na niego i wziąć za niego bajtową karęprint
. Teraz rozumiemSyntaxError: invalid syntax
.Python 3, 97 bajtów
Ten skrypt jest oparty na odpowiedzi @ Mego
źródło