Джо - ваш середній розробник BF. Він збирається перевірити в своєму коді зміни в їх сховищі, коли він отримає дзвінок від свого шефа. "Джо! Машина нового клієнта зламана! Інтерпретатор brainfuck встановлює всі комірки на випадкові значення перед виконанням програми. Немає часу, щоб виправити це, ваш код повинен буде з цим боротися." Джо не дуже думає про це, і збирається написати програму для встановлення першого мільйона комірок на нуль, коли його начальник перерве його знову - "... і не думайте про використання грубої сили, код повинен бути якомога меншим ". Тепер ви повинні допомогти бідному Джо!
Технічні умови
- Ви отримаєте якийсь дійсний код, який є мозком
- Потім ваша програма змінить код так, щоб він працював на рандомізованому перекладачеві епізодів
- Це означає, що перед виконанням програми клітинкам можна встановити будь-яке значення.
- Нова програма повинна мати таку саму поведінку, незалежно від початкових умов.
- Інтерпретатор матиме значення максимальної комірки 255 із загортанням та стрічкою нескінченної довжини.
Оцінка балів
Ваш бал у 10 разів перевищує розмір компілятора в байтах плюс сума розмірів тестових випадків . Очевидно, що найнижчий бал виграє. Щоб пом'якшити процес оптимізації тестових випадків, я залишаю за собою право змінювати тестові справи, якщо я щось підозрюю, і, мабуть, зроблю це перед тим, як вибрати переможця.
Випробування
(Я отримав їх зі сторінки esolangs та цієї веб-сторінки: http://www.hevanet.com/cristofd/brainfuck/ ). Також дякую @Sparr за останній тестовий випадок.
- Привіт Світ:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
- Зворотний вхід:
>,[>,]<[.<]
- Сили двох (нескінченний потік):
>++++++++++>>+<+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<]>.>[->[ <++>-[<++>-[<++>-[<++>-[<-------->>[-]++<-[<++>-]]]]]]<[>+<-]+>>]<<]
- Квадрати до 10000:
++++[>+++++<-]>[<+++++>-]+<+[>[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+>>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]<<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]
- Потік Фібоначчі:
>++++++++++>+>+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[[-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>>]<<<]
- Послідовність ASCII до введення:
,[.[>+<-]>-]
(Для цього потрібні різні числа комірок залежно від введення)