Пісні та шестикутники "Бітлз"


30

Напишіть дві програми у формі трикутника (тобто піраміди).

Перший повинен бути вказівним текстовим трикутником вгору з мінімальною базовою шириною в три символи. Отже, вона мала б подібну структуру

 X
XXX

або

  X
 XXX
XXXXX

або

   X
  XXX
 XXXXX
XXXXXXX

або більше. Кожне з X"s" має бути замінено символами вашого фактичного коду, який може бути будь-яким, крім терміналів рядків (таким чином, це Xможуть бути пробіли). Всі місця Xповинні бути замінені, а пробіли та нові рядки, які допомагають формувати форму трикутника, повинні залишатися такими, які є.

Друга програма повинна мати такий же розмір і форму, як і перша, за винятком того, що трикутник буде спрямований вниз.

Тож якщо ваша перша програма виглядає так

  X
 XXX
XXXXX

тоді буде виглядати ваша друга програма

yyyyy
 yyy
  y

де кожен y- символ, який потрібно заповнити фактичним кодом (мабуть, відрізняється від вашого Xкоду). Пробіли та нові рядки також повинні залишатися однаковими тут.

Ваше завдання полягає в тому, щоб написати ці програми таким чином, щоб вони виводили кожну (для stdout або найближчої альтернативи) назву виразної пісні Beatles , не беручи жодного введення. Ця стаття у Вікіпедії послужить нашим офіційним списком пісень для The Beatles. Вихід повинен бути одним із заголовків точно так, як зазначено, наприклад I Want You (She's So Heavy).

Однак це досить просто, навіть із дивними вимогами до програми трикутника. Таким чином, ми будемо формувати ще одну програму з перших двох, яка повинна вивести ще одну назву пісні.

Комбінуючи три копії кожної з двох трикутних програм, ми можемо створити третю програму у формі шестикутника.

Якщо базова ширина вашої першої програми була три, це виглядало б приблизно так:

 XyyyX
XXXyXXX
yyyXyyy
 yXXXy

Якщо ширина основи склала п'ять, це виглядало б так:

  XyyyyyX
 XXXyyyXXX
XXXXXyXXXXX
yyyyyXyyyyy
 yyyXXXyyy
  yXXXXXy

Ця програма (при запуску з пробілами та новими рядками, як і інші) повинна виводити ще одну назву пісні Beatles, як і перші дві програми. Також:

  • Ваші три програми повинні виводити різні назви пісень.
  • Дозволено використовувати лише назви пісень довжиною вісім символів.
  • Ви можете вибрати лише одну Revolution, Revolution 1і Revolution 9тому, що назви такі схожі.
  • Ви повинні вибрати три улюблені пісні Beatles. (Ну, спробуйте .)

Зауважте, що потрібні фактичні програми. Функції заборонені. Читання власного вихідного коду в будь-якій програмі також не дозволяється.

Приклад

Якщо ваша перша програма була

  A
 AAA
AAAAA

це може вивести Across the Universe.

Тоді ваша друга програма

bbbbb
 bbb
  b

може вивести Revolution.

Потім об'єднують у програму шестикутника

  AbbbbbA
 AAAbbbAAA
AAAAAbAAAAA
bbbbbAbbbbb
 bbbAAAbbb
  bAAAAAb

вихід може бути Get Back.

Оцінка балів

Виграє подання з найменшою шириною основи трикутника. У ймовірному випадку зв'язків виграє подання з найбільшою сумарною довжиною трьох його назв пісень.


2
Невже краватка повинна стати найкращим вибором трьох пісень? ;)
Doug McClean

1
У мене виникають труднощі з написанням запису Python, не просто копіюючи метод Sp3000 (ніколи не думав, що буду скаржитися на синтаксичний пробіл!), Але я написав сценарій, щоб зібрати два трикутники в шестикутник. У випадку, якщо це корисно будь-кому іншому, ось воно в «Гісті» .
Тім Педерік

@ mbomb007 Пробіли, які не є частиною трикутника, не в порядку.
Захоплення Кальвіна

@TimPederick Оскільки я не зміг змусити роботу вашого шестикутника, я написав сценарій Python, щоб зробити це, починаючи з двох багаторядкових рядків. Дивіться тут, якщо хтось хоче ним скористатися.
mbomb007

@ mbomb007 Вибачте, але пробіл не доступний, оскільки він не є частиною заголовка. (Я дозволю зворотний новий рядок, оскільки багато друкованих виписок додають його.) Я не впевнений у звичайній політиці зворотного простору, але зі мною все в порядку.
Захоплення Кальвіна

Відповіді:


18

GolfScript, ширина = 9 символів, титри = 33 символи

Шестикутник

    "Let It Be"
   }";"Yeste"}";      
  "Twi""rda""Twi"
 "st an""y""st an"
"d Shout"}"d Shout"
Let It Be"Let It Be
 "Yeste"}";"Yeste"
  "rda""Twi""rda"
   "y""st an""y"
    }"d Shout"}

Друки нехай будуть . (9 символів)

Спробуйте в Інтернеті.

Як це працює

Маркер "Let It Be"у першому рядку висуває рядок Let It Be на стек.

Другий рядок починається з }незадокументованого "супер коментаря", який негайно припиняє виконання.

Перед виходом GolfScript друкує вміст стеку.

X трикутник

    "
   }";
  "Twi"
 "st an"
"d Shout"

Друкує твіст і крик . (15 символів)

Спробуйте в Інтернеті.

Як це працює

Перші два рядки висувають рядок "\n }", яку команда ;відкидає зі стека.

У решті рядків містяться лексеми "Twi", "st an"і "d Shout", які просувають рядок Twist and Shout у трьох частинах.

Перед виходом GolfScript друкує вміст стеку.

Y трикутник

Let It Be
 "Yeste"
  "rda"
   "y"
    }

Друкує вчора . (9 символів)

Спробуйте в Інтернеті.

Як це працює

Лексеми Let, Itі Beна першому рядку, не визначені, тому вони нічого не роблять.

Три наступні рядки містять маркера "Yeste", "rda"і "y", які штовхають рядок Вчора в трьох частинах.

}На останньому рядку нічого не робить; програма все одно закінчилася б.

Ще раз GolfScript друкує вміст стека перед виходом.


21

Befunge -93, ширина = 13 15 , заголовки = 31 24 символів

Відключення живлення минулої ночі завадило мені оновити це, коли я зрозумів це, але мені вдалося зменшити ширину трикутника та збільшити довжину пісні!

Програма спрямованості: "Копай поні", 10 символів:

      v
     v> 
    v#  >
   "<     
  v <>"y"v>
 <v"Dig a P"
"^>:#,_@.>"no

Пояснення

Я РЕАЛЬНО скористався фокусом Befunge для обгортання, і я вибрав "Dig a Pony" спеціально, тому що в ньому було місце на 6-й позиції. Це дозволяє потоку програми переміщатися через назву пісні. Спробуйте в онлайн-перекладачі, щоб побачити, як це працює.

Програма вниз: "Якщо я впав", 9 символів:

< v"f I Fell"
 v>"I">:#,_@
  "raC yM "
   v"Drive


       .

(Період сторонній і включається лише для відображення інших рядків.)

Пояснення

Єдині відповідні рядки тут - перші два. Я використовував фокус для обгортання (вказівник інструкції надсилається відразу вліво), щоб видавити ще один символ. Другий рядок виводить назву пісні.

У поєднанні: "Веди мій автомобіль", 12 символів:

      v< v"f I Fell"v
     v> v>"I">:#,_@v> 
    v#  >"raC yM "v#  >
   "<     v"Drive"<     
  v <>"y"v>     v <>"y"v>
 <v"Dig a P"   <v"Dig a P"
"^>:#,_@.>"no "^>:#,_@.>"no
< v"f I Fell"v< v"f I Fell"
 v>"I">:#,_@v> v>"I">:#,_@
  "raC yM "v#  >"raC yM "
   v"Drive"<     v"Drive
         v <>"y"v>     
        <v"Dig a P"   
       "^>:#,_@.>"no 

Ось те саме, але з доданими лініями, щоб показати шестикутник і трикутники.

       -----------------
      /v\< v"f I Fell"/v\
     /v> \v>"I">:#,_@/v> \
    /v#  >\"raC yM "/v#  >\
   /"<     \v"Drive/"<     \
  /v <>"y"v>\     /v <>"y"v>\
 /<v"Dig a P"\   /<v"Dig a P"\
/"^>:#,_@.>"no\ /"^>:#,_@.>"no\
-------------------------------
\< v"f I Fell"/v\< v"f I Fell"/
 \v>"I">:#,_@/v> \v>"I">:#,_@/
  \"raC yM "/v#  >\"raC yM "/
   \v"Drive/"<     \v"Drive/
    \     /v <>"y"v>\     /
     \   /<v"Dig a P"\   /
      \ /"^>:#,_@.>"no\ /
       -----------------

Пояснення

Тут починають грати третя та четверта лінії трикутника, що спрямовується вниз. На краю обох трикутників є кілька переспрямувань, які служать для переміщення вказівника інструкції через ці два рядки та натискання «Drive My Car» на стек. Потім він роздруковується, використовуючи >:#,_@біт у трикутнику, що вказує. До речі, використовуються і лівий, і правий вказівний трикутники.

Там може бути спосіб використовувати більше порожнього простору, але я думаю , що мій час краще витратити на інші питання. : P


Хм. Правила PPCG полягають у тому, що якщо програма працює щонайменше в одному інтерпретаторі, то вона дійсна. Хороше місце, хоча.
El'endia Starman

Ще одне «правило» PPCG полягає в тому, що перекладач визначає мову, а не специфікацію. Таким чином, мій код Befunge, по суті, дійсний.
El'endia Starman

18

Пітон 2, ширина = 51

                         #print "Yellow Submarine" if id else "(Reprise)"   ##
                        #.##...............................................##.#
                       #...##.............................................##...#
                      #.....##...........................................##.....#
                     #.......##.........................................##.......#
                    #.........##.......................................##.........#
                   #...........##.....................................##...........#
                  #.............##...................................##.............#
                 #...............##.................................##...............#
                #.................##...............................##.................#
               #...................##.............................##...................#
              #.....................##...........................##.....................#
             #.......................##.........................##.......................#
            #.........................##.......................##.........................#
           #...........................##.....................##...........................#
          #.............................##...................##.............................#
         #...............................##.................##...............................#
        #.................................##...............##.................................#
       #...................................##.............##...................................#
      #.....................................##...........##.....................................#
     #.......................................##.........##.......................................#
    #.........................................##.......##.........................................#
   #...........................................##.....##...........................................#
  #.............................................##...##.............................................#
 #...............................................##.##...............................................#
print "Sgt. Pepper's Lonely Hearts Club Band",;id=0#print "Sgt. Pepper's Lonely Hearts Club Band",;id=0
print "Yellow Submarine" if id else "(Reprise)"   ##print "Yellow Submarine" if id else "(Reprise)"   #
 #...............................................##.##...............................................#
  #.............................................##...##.............................................#
   #...........................................##.....##...........................................#
    #.........................................##.......##.........................................#
     #.......................................##.........##.......................................#
      #.....................................##...........##.....................................#
       #...................................##.............##...................................#
        #.................................##...............##.................................#
         #...............................##.................##...............................#
          #.............................##...................##.............................#
           #...........................##.....................##...........................#
            #.........................##.......................##.........................#
             #.......................##.........................##.......................#
              #.....................##...........................##.....................#
               #...................##.............................##...................#
                #.................##...............................##.................#
                 #...............##.................................##...............#
                  #.............##...................................##.............#
                   #...........##.....................................##...........#
                    #.........##.......................................##.........#
                     #.......##.........................................##.......#
                      #.....##...........................................##.....#
                       #...##.............................................##...#
                        #.##...............................................##.#
                         #print "Sgt. Pepper's Lonely Hearts Club Band",;id=0#

Так, добре ... Пітон.

Коментарі Python починаються з #, тому більшість рядків - це лише коментарі. Для трикутника, спрямованого вгору, єдине, що виконується, - це

print "Sgt. Pepper's Lonely Hearts Club Band",;id=0

який друкує Sgt. Pepper's Lonely Hearts Club Band.

Для трикутника, спрямованого вниз, виконуємо

print "Yellow Submarine" if id else "(Reprise)"

який друкує Yellow Submarine, оскільки функція idtruthy.

Однак, коли ми комбінуємо програми, все, що відбувається, - це два вище рядки послідовно. Оскільки кінець набору перших рядків id=0, який зараз є хибним, кінцевим результатом є те, що ми дотягуємося (Reprise)до кінця, отримуючи Sgt. Pepper's Lonely Hearts Club Band (Reprise)як наш вихід (Калвін сказав, що це нормально ).


15
Це змушує мене думати про Імперський марш більше, ніж будь-яку пісню "Бітлз" ...
Хобі Кальвіна

6
Я чую звуковий ефект винищувача TIE, просто побачивши цю форму
Fatalize

@ Calvin'sHobbies Hahaha. Справді!
Луїс Мендо

17

Сніговик 1.0.2 , ширина = 13

      }?}///////////}
     ///"Get Back"////
    ///////////////////
   /////////////////////
  "Sun King//"[["Sun King
 "*"BirthdaysP/"*"Birthday
"]]8AaLsP[[///"]]8AaLsP[[//
?}///////////}?}///////////
 "Get Back"////"Get Back"/
  ///////////////////////
   /////////////////////
    //"[["Sun King//"[[
     sP/"*"BirthdaysP/
      /"]]8AaLsP[[///

Нарешті! Виклик, де Сніговик може процвітати! : D: D

Штрихи в основному для естетичних цілей, і більшість з них можна замінити пробілами (але це зробило б це виглядати набагато нуднішим). Деякі риски необхідні, для коментарів.

Програма A (вихід:) Birthday:

      }
     ///
    /////
   ///////
  "Sun King
 "*"Birthday
"]]8AaLsP[[//

Цей досить простий. Перший символ ( }) налаштовує наші активні змінні, тоді є купа коментарів / відсутності. Потім він зберігає рядок "Sun King\n "і негайно відкидає її (через *, зберігаючи її в пермаварі, який ми ніколи не використовуємо). Потім він зберігає "Birthday\n".

]]є не оп тут, так як [[ foo ]]це блок коментарів в сніговика, але так як немає ніякого відповідності [[до цього ]](в самій програмі A), він просто нічого не робить. Потім 8AaLзахоплює перші 8 символів рядка, sPроздруковує його та [[коментує решту програми (тому що, знову ж таки, немає відповідності ]].

Програма B (вихід:) Get Back:

?}///////////
 "Get Back"/
  /////////
   ///////
    //"[[
     sP/
      /

Цей також досить простий. ?}еквівалентний }( ?просто встановлює всі змінні неактивні, що тут неоперативно, але знову ж таки, важливо пізніше). Потім він зберігає рядок "Get Back", робить купу відсутніх операцій ( //до кінця рядка це завжди коментар) та друкує через sP.

Повна програма

Вихід - це, ви здогадалися, Sun King1 .

Давайте розглянемо цей рядок за рядком:

  • Рядок 1

          }?}///////////}
    

    Це встановлює наші активні змінні, як і попередні програми (тепер ми бачимо, що ?потрібні, щоб не просто вмикати їх, а потім відключати }}). Решта рядка коментується.

  • Рядки 2-4

         ///"Get Back"////
        ///////////////////
       /////////////////////
    

    Коментарі ...

  • Рядок 5

      "Sun King//"[["Sun King
    

    Тут ми зберігаємо рядок "Sun King//", а потім починаємо блокувати коментар. Це по суті пропускає все до наступного ]].

  • Рядок 6

     "*"BirthdaysP/"*"Birthday
    

    Ще всередині блоку коментар ...

  • Рядок 7

    "]]8AaLsP[[///"]]8AaLsP[[//
    

    Тут ми вириваємося з блочного коментаря на короткий проміжок часу для виконання коду 8AaLsP. Це фактично повторно використовується з програми А. Оскільки я вибрав усі пісні довжиною 8 літер, я можу просто використовувати той самий код для комбінованої програми.

    Тоді це стає трохи хитро. Наступного разу, коли ми вийдемо з коментаря до блоку, ми бачимося 8AaLsPзнову. Однак цього разу всі змінні не визначені (ми викликали sp, друкуємо, в режимі споживання, що позбавляється від змінних). Оскільки aalпотрібні два аргументи, і цього разу він має лише один ( 8), він помиляється і залишає змінні незмінними.

    Аналогічно, spстикаючись з 8, розуміє, що друкується неправильний тип, і залишає змінні як є.

  • Рядки 8-13

    ?}///////////}?}///////////
     "Get Back"////"Get Back"/
      ///////////////////////
       /////////////////////
        //"[["Sun King//"[[
         sP/"*"BirthdaysP/
    

    Все ще застряг у коментарі блоку ...

  • Рядок 14

          /"]]8AaLsP[[///
    

    Нарешті, ми намагаємося викликати ту саму послідовність друку-першої-8-символів ще раз, і вона знову не працює, створюючи ще дві помилки. (Це 8означає, що змінні є зараз. 8 8Це правильна кількість змінних на aalданий момент, але все ще не правильних типів.)


1: а також чотири помилки часу виконання SnowmanExceptionSTDERR, але відповідно до мета, що не має значення .


The slashes are mostly for aesthetic purposes, and the majority of them can be replaced with spaces (but that would make it look a whole lot more boring)Але це робить трохи складніше зрозуміти, що відбувається ...
цікаво,

14

> <> , ширина = 11

     /"yadhtri"\ /
           v"B"/   
        ?!;>ol      
  duJ yeH" /"eduJ yeH
 o   >l?!;   o   >l?!;
staC"/"klaw staC"/"klaw
"yadhtri"\ /"yadhtri"\ 
     v"B"/       v"B"/
  ?!;>ol      ?!;>ol 
   " /"eduJ yeH" /"e
       o   >l?!;   
      staC"/"klaw 

2D мови мають досить гарний час з цим завданням.

Стрілка вгору

     /


  duJ yeH
 o   >l?!;
staC"/"klaw

Потік програми починається зліва вліво, рухаючись праворуч. Відображення /відображається вгору, і оскільки> <> є тороїдальним, ми знову з'являються знизу. Потім натискаємо на іншу /і знову відбиваємось, і натискаємо символи klawstaCодин на одного до стеку в рядковому ""режимі. Нарешті, ми відбиваємося вгору і натискаємо на >l?!;oцикл, що є ідіоматичним способом друку всієї стеки в> <>.

Це відбитки Catswalk.

Стрілка вниз

"yadhtri"\ 
     v"B"/
  ?!;>ol 
   " /"e

В основному те саме, що підштовхує персонажів від руху, використовуючи дзеркала та стрілки для керування потоком програми. Це відбитки Birthday.

Комбінований

     /

  ?!;>ol      ?!;>ol 
     /"eduJ yeH" / 

Відповідні частини вгорі (я вирізав багато ліній посередині). Використовуючи /стрілку вгору, ми відображаємо вгору і загортаємось, але оскільки у нас зараз стрілка вниз, під нею виконується частина цього коду. Потім натискаємо відповідні символи на стек і повторно використовуємо вихідний цикл зі стрілки вниз.

Це відбитки Hey Jude.


5

Python 2, розмір 21

Для цієї програми потрібен ANSI-сумісний термінал (DOS ANSI.SYS має бути конкретним), оскільки я використовую \x1b[2Jдля очищення консолі І переміщення курсору вліво-вліво. Щоб зробити це сумісним з іншими терміналами ANSI, друкуйте\x1b[1J\x1b[H (це все ще може розміститися в шестикутник розміром 21). Я не зміг перевірити цю частину, тому що у мене немає терміналу, який друкує коди аварійних відбітків ANSI.

Я думаю, що програма виглядає досить круто, схожа на радіоактивний символ (хоча затінення ASCII означає, що кольори зворотні) або значок снайперської зброї від Metroid Prime: Hunters.

Він зробив посадку в розмірі 17, але я забув id=0в стрілку вгору. Я не думаю, що я можу зменшити це назад, оскільки це повинно бути в одному рядку ...

Крім того, кредит іде на Sp3000 за ідею для використання id.

          #exec('print"'       ##
         ###'\x1b[2J"+(id '   ####
        #####'and"Hey Ju'    ######
       #######'de"or"Ca'    ########
      #########'tswalk'    ##########
     ###########'")')     ############
    ##############       ##############
   ################     ################
  ##################   ##################
 #################### ####################
id=0;print"Birthday"##id=0;print"Birthday"#
exec('print"'       ##exec('print"'       #
 '\x1b[2J"+(id '   ####'\x1b[2J"+(id '   #
  'and"Hey Ju'    ######'and"Hey Ju'    #
   'de"or"Ca'    ########'de"or"Ca'    #
    'tswalk'    ##########'tswalk'    #
     '")')     ############'")')     #
      #       ###############       #
       #     #################     #
        #   ###################   #
         # ##################### #
          #id=0;print"Birthday"##

Стрілка вгору:

          #
         ###
        #####
       #######
      #########
     ###########
    #############
   ###############
  #################
 ###################
id=0;print"Birthday",

Стрілка вниз:

exec('print"'       #
 '\x1b[2J"+(id '   #
  'and"Hey Ju'    #
   'de"or"Ca'    #
    'tswalk'    #
     '")')     #
      #       #
       #     #
        #   #
         # #
          #

"Ей Джуд" - одна з моїх улюблених пісень "Бітлз", але я дуже багато не знаю. Інших двох пісень, які я використовую, я ніколи не чув. Це не жанр, який я слухаю часто.


1
1. \x1b[2Jпрацює лише з ANSI.SYS; він не повинен робити нічого в інших терміналах. Також \x1b[;Hочікує ціле число після крапки з комою. Для того, щоб і рядки, і стовпці були за замовчуванням 1, використовуйте \x1b[H. 2. \x1b[1J\x1b[Hі \x1b[H\x1b[Jповинен працювати на всіх терміналах ANSI. 3. На терміналах Linux ви можете просто скористатися \x1bcдля скидання терміналу. 4. \x1bможна замінити буквальним байтом ESC, якщо це сприяє покращенню вашого бала.
Денніс

@ Денніс Дякуємо, що очистили це. Я все одно не зможу покращити свою оцінку, оскільки не можу знайти спосіб розбити код стрілки вгору на кілька рядків.
mbomb007

2

C (gcc) , основна ширина = 17

Вгорі, "Ей Джуд"

        s
       ;//
      s;///
     main(//
    ){puts(//
   #define T//
  s?"Michell"//
 "e":"Hey Jud"//
"e");}///////////

Спробуйте в Інтернеті!

Знизу, "Сірникова коробка"

s=1;/////////////
 #ifndef T//////
  main(){puts//
   ("Matchb"//
    "ox");}//
     # endif
      /////
       //\
        ;

Спробуйте в Інтернеті!

Шестикутник, "Мішель"

        ss=1;/////////////s
       ;//#ifndef T//////;//
      s;///main(){puts//s;///
     main(//("Matchb"//main(//
    ){puts(//"ox");}//){puts(//
   #define T//# endif#define T//
  s?"Michell"///////s?"Michell"//
 "e":"Hey Jud"////\"e":"Hey Jud"//
"e");}///////////;"e");}///////////
s=1;/////////////ss=1;/////////////
 #ifndef T//////;//#ifndef T//////
  main(){puts//s;///main(){puts//
   ("Matchb"//main(//("Matchb"//
    "ox");}//){puts(//"ox");}//
     # endif#define T//# endif
      /////s?"Michell"///////
       //\"e":"Hey Jud"////\
        ;"e");}///////////;

Спробуйте в Інтернеті!


1

балка, довжина основи 15

Щойно з’ясував, що він не працює з mawk : /

Це не надто хитро, але, будучи дорослим у 70-х роках, коли "Бітлз" все ще присутній в ефірі, мені довелося відповісти на це. Спочатку я подумав, що awk не підходить, але потім це дійшло до мене.

Оскільки ці сценарії містять BEGIN- та / або END-блоки, їм потрібно сказати, що для виконання блоку END не буде вводу. Цього можна досягти, натиснувши Ctrl-D після їх запуску, або запустивши їх так:

awk -f script.awk </dev/null

що я вважаю зручнішим. echo | awk -f script.awkтакож буде працювати, але якби я використовував порожній рядок як вхід, я зробив би це зовсім інакше.

Вгору, відбитки для нікого (посилання Youtube)

       #
      # #
     #   #
    BEGIN {
   print n?#
  #         #
 n"So Tired":#
n="For No One"}

Основний код без коментарів - це. Оскільки nце не визначено, він надрукує "Для нікого", якщо викликається сам.

    BEGIN {
   print n?

 n"So Tired":
n="For No One"}

Вказуючи вниз, друкує Blackbird

END{a="Blackb"#
 a=n?_:a"ird"#
  printf a  #
   n="I'm "#
    if(a) #
     print
      } #
       #

Основний код такий. Якщо nбуло визначено раніше, він нічого не надрукує. Я примушував приємний вихід з новим рядком після кожного імені треку, тому що в мене було місце для цього, і це виглядає приємніше на консолі. nвизначається в процесі; що потрібно для шестикутника

END{a="Blackb"
 a=n?_:a"ird"
  printf a
   n="I'm "
    if(a)
     print
      }

Шестикутник, відбитки « Я так втомився»

       #END{a="Blackb"##
      # #a=n?_:a"ird"## #
     #   #printf a  ##   #
    BEGIN {n="I'm "#BEGIN {
   print n?#if(a) #print n?#
  #         #print#         #
 n"So Tired":#} #n"So Tired":#
n="For No One"}#n="For No One"}
END{a="Blackb"##END{a="Blackb"#
 a=n?_:a"ird"## #a=n?_:a"ird"#
  printf a  ##   #printf a  #
   n="I'm "#BEGIN {n="I'm "#
    if(a) #print n?#if(a) #
     print#         #print
      } #n"So Tired":#} #
       #n="For No One"}#

Основний код. Тепер нарешті nвикористовується таємниче . Оскільки nвизначено в першому рядку, вгору вказуючий трикутник друкує альтернативний вихід, а нижній, що вказує трикутник, друкує порожнечу.

    BEGIN {n="I'm "
   print n?

 n"So Tired":
n="For No One"}
END{a="Blackb"
 a=n?_:a"ird"
  printf a  
   n="I'm "
    if(a) 
     print
      } 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.