Шестикутник, 37 35 34 31
10"+}(=${";<$<1}42/.0@_=<>\;>(_
Розширено:
1 0 " +
} ( = $ {
" ; < $ < 1
} 4 2 / . 0 @
_ = < > \ ;
> ( _ . .
. . . .
Спробуйте в Інтернеті
В основному, є дві для циклів відліку від десяти до нуля, виведення зірочки на внутрішній цикл і новий рядок на зовнішній петлі.
Пояснення:
Ця програма складається з трьох основних частин: ініціалізація пам'яті, цикл, який друкує десять зірочок, і цикл, який друкує новий рядок. Цикл, який друкує новий рядок, також містить цикл, який друкує зірочки.
По-перше, код виконує повністю лінійну ініціалізацію пам'яті. Код працює як: 10"+}42. Це встановлює пам'ять сусідніх країв таким чином:
10 \ / 10
|
42
42 - код ASCII для символу зірочки, і дві десятки будуть використовуватися як наші лічильники циклів. Слід зазначити, що вказівник пам'яті в даний час спрямований від двох десятків, тому переміщення назад поставить нас на одну з десятків.
Далі починаємо цикл друку зірочок. Лінійно, код виглядає наступним чином : ;".._(. Це виводить зірочку, переміщує вказівник пам'яті назад і вліво і, нарешті, зменшує значення там. Після однієї ітерації пам'ять виглядатиме так:
10 \ / 9
|
42
Потім ми потрапляємо на стан циклу: крайній лівий зліва >. Якщо край, який ми щойно зменшили, все-таки позитивний, ми підстрибуємо та виконуємо a, {щоб повернути нас назад на 42. Потім ми натискаємо на a $і повертаємося до початку петлі друку ;, пропускаючи <. Якщо значення було нульовим, ми переходимо до іншого циклу.
Зовнішній цикл починається зі скидання недавно нульового краю пам'яті до десяти (це 10код у коді, що йде на південний захід). Потім ми роздруковуємо цю десятку як символ ASCII, що є новим рядком. Далі ми переходимо на інший край пам'яті і зменшуємо його , {(а потім виконати те , що становить купу Без операційне: =${_=. Тепер, після однієї ітерації цього циклу, пам'ять виглядатиме так:
9 \ / 10
|
42
Цього разу пам’ять звернена назовні від краю, де зберігається дев'ять на наведеній вище схемі. Далі ми виконуємо функцію, <яка виступає умовою циклу для зовнішньої петлі. Якщо значення було не нульовим, ми відскакуємо від деяких дзеркал, після чого знову почнемо виконувати змістовні вказівки після введення вершини шестикутника на "рухомий південний захід. Це змушує нас рухатись назад і вліво, на 42 знову, але обличчям досередини. Потім =перевертає наш напрямок, скидаючи стан належним чином, щоб знову почати внутрішню петлю. Якщо для краю було встановлено нуль, покажчик інструкцій продовжує невелику пригоду, яка нічого не робить, поки не вийде з програми.
Пригода починається з вказівника, що прямує на північний схід, небезпечно нехтуючи безпекою кардинальних напрямків. Він сміливо ігнорує дзеркало, яке узгоджується з його напрямком ( /) і героїчно стрибає з батута ($) повністю ухиляючись від смертельної пастки іншого, абсолютно ідентичного батута. Виглядаючи на порожнечу неініціалізованих шестигранних країв, вказівник, не замикаючись ні на мить, додає два порожніх ребра, з якими стикається разом, встановлюючи поточний край до їх суми: 0 (край заздалегідь був фактично нульовим, але вказівник любить повірте, це було досить важливо). Оскільки край дорівнює нулю, вказівник робить розворот наліво на дорозі, в’їжджаючи в таємничий ліс (з шестикутників). Там вона опиняється дезорієнтованою, рухаючись вперед і назад і вперед, поки не звивається на тому самому місці пам’яті, що і почалося. Думаючи, що проблема повинна полягати в тому, що поточний край був встановлений на нуль востаннє, покажчик сміливо заводить a1в поточний край. Потім шляхетний вказівник досліджує інший шлях, прокладений ... пасткою! Поточний край зменшується і повертається до нуля! Вказівник, запаморочений шокуючим поворотом подій, натикається назад у пастку, встановлюючи поточний край на негативний. Вражений вказівник намагається повернутися до порівняно приємного лісу, лише помітивши, що оскільки нинішній край не є позитивним, шляхи знову змістилися, і вказівник виявляється, що йде в печеру. А під печерою я маю на увазі гирло гігантського шестикутного хробака. Безпорадна, вказівник проклинає сексуальність своїм вмираючим диханням. Також програма закінчується.