Ваше завдання полягає в тому, щоб перетворити вхідний текст на код, який буде виводити текст.
Підручник, взятий звідси з дозволу тут
Brain-Flak має дві стеки, відомі як "лівий" і "правий". Активний стек починається зліва. Якщо спливе порожній стек, він повернеться 0. Це все. Ніяких інших змінних. Коли програма запускається, кожен аргумент командного рядка висувається на активний стек.
Єдиними дійсними символами програми Brain-Flak є ()[]{}<>
, і вони завжди повинні бути врівноваженими. Є два типи функцій: Nilads і монади . Nilad це функція , яка приймає 0 аргументів. Ось усі нилади:
()
Оцінюється до одного.[]
Оцінює до висоти поточного стеку.{}
Поп активного стека. Оцінюється до спливаючого значення.<>
Увімкніть активний стек. Оцінюється до нуля.
Вони об'єднуються разом, коли вони оцінюються. Отже, якщо у нас був "3" поверх активного стека, цей фрагмент:
()(){}
оцінив би, до 1 + 1 + active.pop()
якого оцінив би 5.
Монади беруть один аргумент, шматок коду Брейн-Флак. Ось усі монади:
(n)
Натисніть «n» на активний стек.[n]
Оцінюється до мінус 'n'{foo}
Поки нуль не знаходиться у верхній частині стека, виконайте foo.<foo>
Виконайте foo, але оцініть його як 0.
Ці функції також повернуть значення всередині них, так
(()()())
Буде натискати 3, але
((()()()))
Буде натискати 3 двічі .
{}
Оцінюватиме на суму всіх прогонів. Отже, якщо у нас було "3" і "4" у верхній частині стека:
{{}}
оцінили б як 7.
Коли програма виконана, кожне значення, що залишилося в активному стеку, друкується, між ними є новий рядок. Значення в іншій стеці ігноруються.
Правила
- Ви можете припустити, що "Мозок-Флак" запускається з ассі. (
-A
) - Код головного мозку НЕ повинен вимагати введення
- Діють усі стандартні правила
- Код повинен працювати протягом 1 хвилини для будь-якого вводу до 1024 байтів на TIO. (Якщо немає виводу TIO, надайте інтерпретатор, і я запускаю його на своїй машині (моя машина повинна мати можливість наблизитися до TIO)).
- Ви повинні підтримувати введення довільної довжини.
- Ви можете взяти дані з файлу.
- Оптимізація для тестових випадків заборонена
- Детермінований вихід необхідний
- Програми не потребують чистого стеку
Тестові приклади (спробуйте свій код на цих, фактичні підрахунки тексту будуть опубліковані через 1-2 тижні після публікації виклику)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
The meaning of brain-flak is to flak your brain with pain.
`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?
To be, or not to be, that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles
And by opposing end them. To die-to sleep,
No more; and by a sleep to say we die
<your brain-flak code here>
The fitness pacer test is a multi stage test. Avacado Avacado Avacadad Avacadad carrot.bat carrot.jar carrot.carrot Quack Quack Quack Quack Quack Quack Quack Quack Quack downgoat doawngoat down down gaot
This challenge came from a online program that turned text into brain-fuck. However brain-fuck has limitations and it is not nearly as cool as brain-flak. I really am looking forward to cool programs :) I am glad you took the time to read this and look forward to seeing your answer.
Перемога
Щоб виграти, ви повинні вказати загальну тривалість коду, що задається головним мозком, який дається кожним із тестових випадків, який буде випущений через 1-2 тижні після дати публікації. Виграє найкоротша загальна довжина.
ПРИМІТКА!!!!!!:
Це не гольф з кодом, довжина коду жодним чином не вплине на ваш остаточний рахунок. Оцінка чистого коду для читання. Спасибі!
Тестові справи
<your brain-flak code here>
менше 1000, - це нагорода. Що я не можу публікувати ще один день, отак; не помітив, як це було новим.