У нас есть конвертер Brainf *** в TinyBF, но не наоборот, так что вот один.
Правила:
- Ваш переводчик должен взять действительную программу TinyBF в одну строку и вывести соответствующую программу BrainF *** в одну строку с необязательным завершающим пробелом / символом новой строки. Запрещены пробелы в начале строки
- Ввод может содержать или не содержать символы, которые не являются ни одним из четырех символов TinyBF. Если это так, вы должны напечатать все эти символы в тех же местах.
- Ответ будет принят 1 апреля (без шуток), основываясь на некоторых непонятных критериях, которые я буду использовать (jk;) Я приму самую короткую программу, которая не обманывает по следующим правилам)
- Нет 0-байтовых или 1-байтовых решений, потому что это разрушает удовольствие, если вы создаете (или существует) язык программирования только для этой цели)
Тестовые случаи
Вход 1: +++++>+++++=>=|>>+=>>+|=>|>+=>+|
(вычисляет 5 (байт 1) + 5 (байт 2) = 10 (байт 3))
Выход 1:+++++>+++++<[>>+<<-]>[>+<-]
Вход 2: +++>++++Hi+++:P+=>=|>|>+>+=>>&&+|=>>|=>>=+!!>>=+|>>>+|
(вычисляет 3 (байт 1) * 8 (байт 2) = 24 (байт 3)) Выход 2:+++>++++Hi+++:P+<[>[>+>+<<&&-]>>[<<+!!>>-]<<<-]
==
является Brainfuck - х.
.Ответы:
Python 2, 106 байт
Реализует спецификацию TinyBF, как показано здесь . Попробуйте онлайн . Улучшения были сделаны с использованием техник из ответа @ Dica . Требуется ввод строки в кавычках.
источник
r+=b.get(c,c+c)[a]*(c!='=')
. Вы также можете сделать цикл для одной строки, чтобы сохранить еще 3. Вы можете вставить диктат, чтобы сохранить еще 4. Этоinput()
еще одна четверка .raw_input
Python 3, либо перейти на него и принять штраф за байтыprint
. Прямо сейчас я получаюSyntaxError: invalid syntax
.Python 3, 97 байт
Этот сценарий основан на ответе @ Mego
источник