Усі ті зайняті бобри завели безлад. Вони писали по всій стрічці. З цією ставкою наш сусід перестане позичати нам безмежні стрічки.
Нам потрібен новий спосіб грати в зайняту гру в бобра - той, який не руйнує кожну використану нами стрічку.
Правила
Тільки Brainfuck. Стрічка пам'яті не обмежена обома способами. Інструкція введення завжди буде читати , тому її можна використовувати для очищення значення.
Ліміт джерела 50 байт
Після закінчення виконання пам'ять повинна становити всі с.
Оцінка - це відстань між початковим місцем розташування вказівника пам’яті та кінцевим місцем розташування - якщо для проходження між ними потрібно інструкцій щодо переміщення, ваш результат дорівнює n . Вище - краще. Укажіть точне значення, якщо можете, інакше вкажіть оцінку.
Приклад
32 байти,
-[-[[>]+>+[<]>-[[>]<+<+[<]>-]]>]
Пояснення
- Initialize the list to [255].
[ ] Repeat as long as the list is not empty.
[- ] Decrement the left end. We need to shrink the numbers so it ends eventually.
[ [ ] ] Skip if 0 already.
[ [[>] ] ] Move to the cell past the right end.
[ [ + ] ] Make this cell 1.
[ [ > ] ] Go right again.
[ [ + ] ] Make this cell 1. We've now appended [1, 1].
[ [ [<]> ] ] Go back to the first nonzero cell on the left.
[ [ - ] ] And decrement it.
[ [ [ ]] ] We will need to transfer the rest of the number from the left to the right, so keep looping.
[ [ [[>]< ]] ] Go to the last nonzero cell on the right.
[ [ [ +<+ ]] ] Increment this and the one on the left. These are the cells we appended earlier. We transfer to them.
[ [ [ [<]> ]] ] Go back to the first nonzero cell on the left, which we are transferring from.
[ [ [ -]] ] Decrement here on the left to balance out the incrementing on the right.
[ >] We end the iteration on a now empty cell. Move right, the new left end is there.
Цей приклад призначений для показу деяких методів, що використовуються при створенні подання. Він не є конкурентоспроможним за своїми розмірами.