비틀즈의 노래와 육각형


30

두 개의 삼각형 (즉, 피라미드) 모양의 프로그램을 작성하십시오.

첫 번째는 최소 기본 너비가 3자인 위쪽을 가리키는 텍스트 삼각형이어야합니다. 그래서 그것은 같은 구조를 가질 것입니다

 X
XXX

또는

  X
 XXX
XXXXX

또는

   X
  XXX
 XXXXX
XXXXXXX

이상. 의 각 X코드는 실제 코드의 문자로 바뀌어야합니다.이 문자는 줄 종결 자를 제외한 모든 문자 일 수 있습니다 (따라서 X공백이 될 수 있음). 를 모두 X교체해야하며 삼각형 모양을 형성하는 데 도움이되는 공백과 줄 바꿈은 그대로 유지해야합니다.

두 번째 프로그램은 삼각형이 아래쪽을 가리키는 점을 제외하고 첫 번째 프로그램과 크기와 모양이 같아야합니다.

첫 번째 프로그램이

  X
 XXX
XXXXX

두 번째 프로그램은 다음과 같습니다

yyyyy
 yyy
  y

여기서 각각 y은 실제 코드로 채워야하는 문자입니다 (아마 코드와 다를 수 있음 X). 공백과 개행은 여기에서도 동일하게 유지되어야합니다.

당신의 임무는 각 프로그램이 별도의 비틀즈 노래 의 제목을 출력 하지 않고 (stdout 또는 가장 가까운 대안으로) 입력하지 않고 작성하는 것입니다. 이 Wikipedia 기사 는 The Beatles의 공식 노래 목록으로 사용됩니다. 출력은 제목과 같은 제목 중 하나 여야합니다. 예 :I Want You (She's So Heavy) .

그러나 이상한 삼각형 프로그램 요구 사항이 있더라도 매우 쉽습니다. 그래서 우리는 또 다른 노래 제목을 출력 해야하는 처음 두 프로그램에서 다른 프로그램을 구성 할 것입니다.

두 개의 삼각형 프로그램 각각의 세 복사본을 결합하여 육각형 모양의 세 번째 프로그램을 만들 수 있습니다.

첫 번째 프로그램의 기본 너비가 3이면 다음과 같습니다.

 XyyyX
XXXyXXX
yyyXyyy
 yXXXy

기본 너비가 5이면 다음과 같습니다.

  XyyyyyX
 XXXyyyXXX
XXXXXyXXXXX
yyyyyXyyyyy
 yyyXXXyyy
  yXXXXXy

이 프로그램 (공백과 다른 줄 바꿈과 함께 실행할 때)은 처음 두 프로그램과 마찬가지로 다른 Beatles 노래 제목을 출력해야합니다. 또한:

  • 세 프로그램은 서로 다른 노래 제목을 출력해야합니다.
  • 길이가 8 자 이상인 노래 제목 만 허용됩니다.
  • 당신은 중 하나를 선택할 수 있습니다 Revolution, Revolution 1그리고Revolution 9 제목이 너무 비슷하기 때문이다.
  • 가장 좋아하는 비틀즈 노래 3 곡을 선택해야합니다. (음, 노력 하십시오)

실제 프로그램이 필요합니다. 기능은 허용되지 않습니다. 모든 프로그램에서 자신의 소스 코드를 읽는 것도 허용되지 않습니다.

첫 번째 프로그램이

  A
 AAA
AAAAA

출력 가능 Across the Universe .

그런 다음 두 번째 프로그램

bbbbb
 bbb
  b

출력 가능 Revolution .

그런 다음 육각형 프로그램에 결합

  AbbbbbA
 AAAbbbAAA
AAAAAbAAAAA
bbbbbAbbbbb
 bbbAAAbbb
  bAAAAAb

출력은 Get Back .

채점

가장 작은 삼각형 기본 너비를 가진 제출물이 이깁니다. 동점 일 가능성이 높은 경우, 세 곡 제목 중 가장 큰 길이의 제출물이 이깁니다.


2
분명히 순위 결정은 3 곡 중에서 가장 좋은 선택이어야합니까? ;)
Doug McClean

1
난 그냥 SP3000의 방법을 복사하지 않고 파이썬 항목을 작성하는 데 어려움이있어 (결코 생각하지 않았다 나는 것 ! 구문 공백에 대해 불평 할),하지만 난 육각에 두 개의 삼각형을 조립하는 스크립트를 썼다. 다른 사람에게 유용한 경우 여기에 Gist 있습니다.
Tim Pederick

@ mbomb007 삼각형 패턴의 일부가 아닌 후행 공백은 양호하지 않습니다.
Calvin 's Hobbies

@TimPederick 육각형 한정자를 사용할 수 없으므로 2 줄의 문자열로 시작하는 Python 스크립트를 작성했습니다. 누구나 사용하려면 여기를 참조하십시오 .
mbomb007

@ mbomb007 죄송하지만 후행 공백은 제목의 일부가 아니므로 허용되지 않습니다. (많은 인쇄 문이 하나를 추가하기 때문에 후행 줄 바꿈을 허용합니다.) 일반적인 백 스페이스 정책에 대해 잘 모르겠지만 나에게는 괜찮습니다.
Calvin 's Hobbies

답변:


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"첫 번째 줄 의 토큰 은 문자열 It It Be를 푸시합니다. 은 스택에서 .

두 번째 줄은 } 문서화되지 않은 "슈퍼 코멘트"로 즉시 실행을 중단합니다.

종료하기 전에 GolfScript는 스택의 내용을 인쇄합니다.

X 삼각형

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

트위스트 및 소리를 인쇄합니다 . (15 자)

온라인으로 사용해보십시오.

작동 원리

처음 두 행은 문자열 밀어 "\n }"명령을; 은 스택에서 버립니다.

나머지 라인은 토큰을 포함 "Twi", "st an""d Shout"문자열 밀어, 트위스트와 외침 을 세 조각으로 .

종료하기 전에 GolfScript는 스택의 내용을 인쇄합니다.

Y 삼각형

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

어제 인쇄 합니다. (9 자)

온라인으로 사용해보십시오.

작동 원리

토큰 Let, ItBe그들은 아무것도 할 수 있도록 첫 번째 행은 정의되지 않은 있습니다.

다음 세 가지 라인은 토큰을 포함 "Yeste", "rda""y"문자열을 밀어하는, 어제 세 조각을.

그만큼 }마지막 줄에 아무것도하지 않는다; 프로그램은 어쨌든 끝났을 것입니다.

한 번 더 GolfScript는 종료하기 전에 스택의 내용을 인쇄합니다.


21

Befunge -93, 너비 = 13 15 , 제목 = 31 24

어젯밤 정전으로 알아낼 때 이것을 업데이트하지 못했지만 삼각형 너비를 줄였습니다. 노래의 길이를 증가!

포인팅 프로그램 : "Dig a Pony", 10 자 :

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

설명

나는 정말 Befunge의 랩 어라운드 트릭을 이용했고 6 번째 자리에 공백이 있기 때문에 "Dig a Pony"를 골랐다. 이를 통해 프로그램 흐름 이 노래 이름을 통해 이동할 수 있습니다 . 온라인 통역사 에서 사용해보십시오 어떻게 작동하는지 볼 수 있습니다.

포인팅 프로그램 : "I Fell", 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\ /
       -----------------

설명

여기에서 아래로 향한 삼각형의 세 번째와 네 번째 줄이 시작됩니다. 두 삼각형의 가장자리에는 명령 포인터를 해당 두 줄을 통해 이동하고 "내 차 운전"을 스택으로 밀어 넣는 몇 가지 방향 전환이 있습니다. 그런 다음 >:#,_@위쪽을 가리키는 삼각형 의 비트를 사용하여 인쇄됩니다 . 또한 왼쪽 왼쪽 모두 오른쪽을 가리키는 삼각형이 모두 사용됩니다.

빈 공간을 더 많이 사용하는 방법 이 있을 수 있지만 다른 질문에 시간을 더 투자하는 것이 좋습니다. :피


흠. 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#

그래, 그래 ... 파이썬

파이썬 주석은로 시작 #하므로 대부분의 줄은 주석입니다. 위쪽을 향한 삼각형의 경우 실행하는 유일한 것은

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함수 이후에 인쇄 하는id 는 진실하기 .

그러나 프로그램을 결합하면 위의 두 줄만 순차적으로 발생합니다. 첫 번째 행의 끝 id=0이 이제 잘못되었으므로 최종 결과는 a (Reprise)를 끝까지 고정하여 Sgt. Pepper's Lonely Hearts Club Band (Reprise)출력으로 얻습니다 (Calvin 은 이것이 정상 이라고 말했습니다 ).


15
이 차종은 나 ... 더 비틀즈의 노래보다 임페리얼 월의 생각
칼빈의 취미

6
이 모양을보고 TIE 전투기 사운드 효과를들을 수 있습니다
Fatalize

@ Calvin'sHobbies 하하하. 과연!
Luis Mendo

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 ]]눈사람에는 블록 주석이 있기 때문에 여기에 no-op 이지만, (프로그램 A 자체 내에서) [[이것 앞에 일치하는 ]]것이 없기 때문에 단순히 아무것도하지 않습니다. 그런 다음 8AaL문자열의 처음 8자를 잡고 sP인쇄 [[하고 나머지 프로그램을 주석 처리합니다 (다시 일치하므로 일치하지 않습니다)]] .

프로그램 B (출력 :) Get Back:

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

이것도 꽤 간단합니다. ?}에 해당합니다 }( ?단순히 중요 후, 여기하지만 다시없는 조합이다없는 비활성 모든 변수를 설정합니다). 그런 다음 문자열을 저장하고 일련 "Get Back"의 no-ops를 수행합니다 ( //줄 끝은 항상 주석입니다).sP .

전체 프로그램

출력, 당신은 그것을 추측 Sun King1 입니다.

이 줄을 한 줄씩 살펴 봅시다 :

  • 1 호선

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

    이것은 이전 프로그램과 마찬가지로 활성 변수를 설정합니다 (이제 ?단순히 스위치를 껐다 켜는 것이 아니라는 것을 알 수 있습니다 }}). 나머지 줄은 주석 처리됩니다.

  • 2-4 행

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

    코멘트...

  • 5 호선

      "Sun King//"[["Sun King
    

    여기에 문자열을 저장하고 "Sun King//"블록 주석을 시작합니다. 이것은 본질적으로 다음까지 모든 것을 건너 뜁니다 ]].

  • 6 호선

     "*"BirthdaysP/"*"Birthday
    

    여전히 블록 주석 안에 ...

  • 7 호선

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

    여기서 우리는 코드를 실행하기 위해 짧은 시간 동안 블록 주석을 끊습니다 8AaLsP. 이것은 실제로 프로그램 A에서 재사용됩니다. 8 글자 길이의 모든 노래를 선택 했으므로 결합 된 프로그램에 동일한 코드를 사용할 수 있습니다.

    그러면 조금 까다로워집니다. 다음에 블록 주석에서 나오면 8AaLsP다시 봅니다. 그러나 이번에는 모든 변수가 정의되지 않았습니다 ( sp소비 모드에서 변수를 제거하는, print 라고 함 ). aal두 개의 인수가 필요 하므로 이번에는 하나의 인수 (8 변수 변경), 그것은 오류와 잎.

    마찬가지로을 sp만나서 8인쇄 할 수있는 잘못된 유형임을 인식하고 변수를 그대로 둡니다.

  • 8 ~ 13 행

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

    여전히 그 블록 주석에 붙어 ...

  • 14 호선

          /"]]8AaLsP[[///
    

    마지막으로 동일한 print-first-8-chars 시퀀스를 다시 한 번 호출하면 다시 실패하고 또 다른 두 가지 오류가 발생합니다. (이것은 8변수가 now 라는 것을 의미합니다. 8 8이는 현재 올바른 변수 aal 이지만 올바른 유형은 아닙니다.)


1 : SnowmanExceptionSTDERR에 대한 4 개의 런타임 오류뿐만 아니라 중요하지 않은 메타 당 .


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)하지만 ... 무슨 일인지 파악 좀 어렵게 만들 않습니다
curiousdannii

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

파이썬 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'    #
     '")')     #
      #       #
       #     #
        #   #
         # #
          #

"Hey Jude"는 내가 가장 좋아하는 Beatles 노래 중 하나이지만, 나는 그 많은 것을 정말로 모른다. 내가 사용중인 다른 두 곡을 들어 본 적이 없습니다. 내가 자주 듣는 장르가 아닙니다.


1
1. ANSI.SYS 에서만\x1b[2J 작동 합니다 . 다른 터미널에서는 아무것도하지 않아야합니다. 또한 \x1b[;H세미콜론 다음에 정수가 필요합니다. 행과 열을 모두 1로 기본 설정하려면을 사용하십시오 \x1b[H. 2. \x1b[1J\x1b[H\x1b[H\x1b[J모든 ANSI 터미널에 작동합니다. 3. Linux 터미널에서는 간단히 \x1bc터미널을 재설정하는 데 사용할 수 있습니다 . 4. \x1b점수 향상에 도움이되는 경우 리터럴 ESC 바이트로 대체 할 수 있습니다.
Dennis

@ 데니스 감사합니다. 위쪽 화살표의 코드를 여러 줄로 나눌 수있는 방법을 알 수 없기 때문에 여전히 점수를 향상시킬 수 없습니다.
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

gawk, 기본 길이 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정의되지 않았기 때문에 자체 호출 된 경우 "No No"를 인쇄합니다.

    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
      } 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.