Bài hát Beatles và Hexagons


30

Viết hai chương trình hình tam giác (tức là kim tự tháp).

Đầu tiên phải là một tam giác văn bản hướng lên trên với chiều rộng cơ sở tối thiểu là ba ký tự. Vì vậy, nó sẽ có cấu trúc như

 X
XXX

hoặc là

  X
 XXX
XXXXX

hoặc là

   X
  XXX
 XXXXX
XXXXXXX

hoặc lớn hơn. Mỗi Xký tự sẽ được thay thế bằng các ký tự của mã thực tế của bạn, có thể là bất cứ thứ gì ngoại trừ các đầu cuối dòng (vì vậy các Xký tự có thể là khoảng trắng). Tất cả Xphải được thay thế và các khoảng trắng và dòng mới giúp tạo thành hình tam giác được yêu cầu giữ nguyên trạng.

Chương trình thứ hai phải có cùng kích thước và hình dạng như chương trình thứ nhất, ngoại trừ hình tam giác sẽ được chỉ xuống.

Vì vậy, nếu chương trình đầu tiên của bạn trông giống như

  X
 XXX
XXXXX

sau đó chương trình thứ hai của bạn sẽ như thế nào

yyyyy
 yyy
  y

trong đó mỗi yký tự là một ký tự bạn cần điền vào mã thực tế của bạn (có thể khác với Xmã của bạn ). Các không gian và dòng mới cũng phải giữ nguyên ở đây.

Nhiệm vụ của bạn là viết các chương trình này sao cho mỗi đầu ra (theo thiết bị xuất chuẩn hoặc thay thế gần nhất) tiêu đề của một bài hát Beatles riêng biệt , không lấy bất kỳ đầu vào nào. Bài viết Wikipedia này sẽ phục vụ như danh sách bài hát chính thức của chúng tôi cho The Beatles. Đầu ra phải là một trong những tiêu đề chính xác như được liệt kê, ví dụ I Want You (She's So Heavy).

Điều này là khá dễ dàng, tuy nhiên, ngay cả với yêu cầu chương trình tam giác kỳ lạ. Vì vậy, chúng tôi sẽ tạo thành một chương trình khác từ hai chương trình đầu tiên phải xuất ra một tiêu đề bài hát khác.

Bằng cách kết hợp ba bản sao của mỗi trong hai chương trình tam giác, chúng ta có thể tạo ra một chương trình thứ ba có hình dạng như một hình lục giác.

Nếu chiều rộng cơ sở của chương trình đầu tiên của bạn là ba thì nó sẽ trông như thế này:

 XyyyX
XXXyXXX
yyyXyyy
 yXXXy

Nếu chiều rộng cơ sở là năm thì nó sẽ trông như thế này:

  XyyyyyX
 XXXyyyXXX
XXXXXyXXXXX
yyyyyXyyyyy
 yyyXXXyyy
  yXXXXXy

Chương trình này (khi được chạy với các khoảng trắng và dòng mới như các chương trình khác) phải xuất ra một tiêu đề bài hát khác của Beatles, giống như hai chương trình đầu tiên. Cũng thế:

  • Ba chương trình của bạn phải xuất ra các tiêu đề bài hát khác nhau.
  • Chỉ cho phép tiêu đề bài hát tám ký tự dài hơn hoặc dài hơn.
  • Bạn chỉ có thể chọn một trong Revolution, Revolution 1Revolution 9 bởi vì các chức danh rất giống nhau.
  • Bạn phải chọn ba bài hát Beatles yêu thích của bạn. (Chà, cố gắng lên.)

Lưu ý rằng các chương trình thực tế là bắt buộc. Chức năng không được phép. Đọc mã nguồn của riêng bạn trong bất kỳ chương trình nào cũng không được phép.

Thí dụ

Nếu chương trình đầu tiên của bạn là

  A
 AAA
AAAAA

nó có thể xuất ra Across the Universe .

Sau đó, chương trình thứ hai của bạn

bbbbb
 bbb
  b

có thể đầu ra Revolution .

Sau đó kết hợp thành chương trình lục giác

  AbbbbbA
 AAAbbbAAA
AAAAAbAAAAA
bbbbbAbbbbb
 bbbAAAbbb
  bAAAAAb

đầu ra có thể là Get Back .

Chấm điểm

Đệ trình với chiều rộng cơ sở tam giác nhỏ nhất sẽ thắng. Trong trường hợp có khả năng ràng buộc, bài dự thi có độ dài tổng cộng lớn nhất trong ba danh hiệu bài hát của nó sẽ giành chiến thắng.


2
Chắc chắn rằng tiebreaker nên là sự lựa chọn tốt nhất trong ba bài hát? ;)
Doug McClean

1
Tôi gặp khó khăn khi viết một mục Python mà không chỉ sao chép phương thức của Sp3000 (không bao giờ nghĩ rằng tôi sẽ phàn nàn về khoảng trắng cú pháp!), Nhưng tôi đã viết một tập lệnh để ghép hai hình tam giác thành một hình lục giác. Trong trường hợp nó hữu ích cho bất kỳ ai khác, thì đây là Gist .
Tim Pederick

@ mbomb007 Không gian lưu trữ không phải là một phần của mô hình tam giác không ổn.
Sở thích của Calvin

@TimPederick Vì tôi không thể làm cho hexagon-ifier của bạn hoạt động, tôi đã viết một tập lệnh Python để bắt đầu với 2 chuỗi nhiều dòng. Xem ở đây nếu bất cứ ai muốn sử dụng nó.
mbomb007

@ mbomb007 Xin lỗi nhưng không gian dấu không được phép vì nó không phải là một phần của tiêu đề. (Tôi sẽ cho phép một dòng mới theo dõi vì nhiều câu lệnh in thêm một.) Tôi không chắc về chính sách xóa lùi thông thường nhưng chúng vẫn ổn với tôi.
Sở thích của Calvin

Câu trả lời:


18

GolfScript, width = 9 chars, title = 33 chars

Hình sáu góc

    "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"}

In Hãy để nó được . (9 ký tự)

Hãy thử trực tuyến.

Làm thế nào nó hoạt động

Mã thông báo "Let It Be"trên dòng đầu tiên đẩy chuỗi Let It Be trên ngăn xếp.

Dòng thứ hai bắt đầu bằng }một "siêu bình luận" không có giấy tờ, hủy bỏ việc thực thi ngay lập tức.

Trước khi thoát, GolfScript in nội dung của ngăn xếp.

Tam giác X

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

In Twist và Shout . (15 ký tự)

Hãy thử trực tuyến.

Làm thế nào nó hoạt động

Hai dòng đầu tiên đẩy chuỗi "\n }", mà lệnh ;sẽ loại bỏ khỏi ngăn xếp.

Các dòng còn lại chứa các thẻ "Twi", "st an""d Shout", trong đó đẩy chuỗi Twist and Shout trong ba miếng.

Trước khi thoát, GolfScript in nội dung của ngăn xếp.

Tam giác Y

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

In hôm qua . (9 ký tự)

Hãy thử trực tuyến.

Làm thế nào nó hoạt động

Các thẻ Let, ItBetrên dòng đầu tiên được xác định, do đó, họ không làm gì cả.

Ba dòng sau chứa các thẻ "Yeste", "rda""y", trong đó đẩy chuỗi Hôm qua trong ba miếng.

Dòng }cuối cùng không làm gì cả; chương trình dù sao cũng đã hoàn thành.

Một lần nữa, GolfScript in nội dung của ngăn xếp trước khi thoát.


21

Befunge -93, width = 13 15 , title = 31 24 ký tự

Mất điện đêm qua đã ngăn tôi cập nhật điều này khi tôi phát hiện ra, nhưng tôi đã cố gắng giảm chiều rộng tam giác tăng thời lượng bài hát!

Chương trình hướng lên: "Dig a Pony", 10 ký tự:

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

Giải trình

Tôi thật sự đã tận dụng mánh khóe của Befunge và tôi chọn "Dig a Pony" đặc biệt vì nó có một khoảng trống ở vị trí thứ 6. Điều này cho phép dòng chương trình di chuyển qua tên bài hát. Hãy thử nó trong trình thông dịch trực tuyến để xem nó hoạt động như thế nào.

Chương trình chỉ xuống: "Nếu tôi học", 9 ký tự:

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


       .

(Thời gian là không liên quan và chỉ bao gồm để làm cho các dòng khác hiển thị.)

Giải trình

Các dòng liên quan duy nhất ở đây là hai dòng đầu tiên. Tôi đã sử dụng thủ thuật quấn quanh (con trỏ lệnh được gửi ngay lập tức) để ép thêm một ký tự. Dòng thứ hai in ra tên bài hát.

Kết hợp: "Lái xe của tôi", 12 ký tự:

      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 

Đây là điều tương tự, nhưng với các dòng được thêm vào để hiển thị hình lục giác và hình tam giác.

       -----------------
      /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\ /
       -----------------

Giải trình

Đây là nơi mà các dòng thứ ba và thứ tư của tam giác chỉ xuống phát huy tác dụng. Có một số chuyển hướng ở rìa của cả hai hình tam giác phục vụ để di chuyển con trỏ lệnh qua hai dòng đó và đẩy "Lái xe của tôi" lên ngăn xếp. Sau đó, nó được in ra bằng cách sử dụng >:#,_@bit trong tam giác chỉ lên. Ngẫu nhiên, cả tam giác hướng trái phải đều được sử dụng.

thể có một cách để sử dụng nhiều không gian trống hơn, nhưng tôi nghĩ rằng thời gian của tôi tốt hơn dành cho các câu hỏi khác. : P


Hừm. Các quy tắc của PPCG là nếu một chương trình hoạt động trong ít nhất một trình thông dịch, thì nó hợp lệ. Điểm tốt, mặc dù.
El'endia Starman

Một "quy tắc" khác của PPCG là trình thông dịch xác định ngôn ngữ, không phải đặc tả. Do đó, mã Befunge của tôi về cơ bản là hợp lệ.
El'endia Starman

18

Con trăn 2, chiều rộng = 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#

Vâng, ... Python.

Nhận xét Python bắt đầu bằng #, vì vậy phần lớn các dòng chỉ là nhận xét. Đối với hình tam giác hướng lên trên, điều duy nhất thực hiện là

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

mà in Sgt. Pepper's Lonely Hearts Club Band.

Đối với tam giác hướng xuống dưới, chúng tôi thực hiện

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

mà in Yellow Submarine , vì chức năng idlà sự thật.

Tuy nhiên, khi chúng tôi kết hợp các chương trình, tất cả những gì xảy ra là hai dòng trên theo trình tự. Kể từ khi kết thúc các tập hợp dòng đầu tiên id=0, hiện đang bị làm sai lệch, kết quả cuối cùng là chúng tôi đã giải (Reprise)quyết đến cuối cùng, lấy Sgt. Pepper's Lonely Hearts Club Band (Reprise)đầu ra của chúng tôi (Calvin nói điều này là ổn ).


15
Điều này khiến tôi nghĩ về Imperial March nhiều hơn bất kỳ bài hát nào của Beatles ...
Sở thích của Calvin

6
Tôi có thể nghe thấy hiệu ứng âm thanh TIE-Fighter chỉ bằng cách nhìn thấy hình dạng này
Fatalize

@ Calvin'sHob sở thích Hahaha. Thật!
Luis Mendo

17

Người tuyết 1.0.2 , chiều rộng = 13

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

Cuối cùng!Một thách thức nơi Người tuyết có thể phát triển mạnh! : D: D

Các dấu gạch chéo chủ yếu là cho mục đích thẩm mỹ, và phần lớn trong số chúng có thể được thay thế bằng khoảng trắng (nhưng điều đó sẽ khiến nó trông nhàm chán hơn rất nhiều). Một số dấu gạch chéo là cần thiết, cho ý kiến.

Chương trình A (đầu ra Birthday:):

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

Điều này khá đơn giản. Ký tự đầu tiên ( }) thiết lập các biến hoạt động của chúng tôi, sau đó có một loạt các bình luận / không-op. Sau đó, nó lưu trữ chuỗi "Sun King\n "và ngay lập tức loại bỏ nó (thông qua *, lưu trữ nó trong một permavar mà chúng ta không bao giờ sử dụng). Sau đó, nó lưu trữ "Birthday\n".

]]là không có ở đây, vì [[ foo ]]là một bình luận khối trong Người tuyết, nhưng vì không có kết quả phù hợp [[trước đó]] (trong chính chương trình A), nên đơn giản là không có gì. Sau đó 8AaLlấy 8 ký tự đầu tiên của chuỗi, sPin nó và [[nhận xét phần còn lại của chương trình (vì một lần nữa, không có kết quả khớp ]].

Chương trình B (đầu ra Get Back:):

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

Điều này cũng khá đơn giản. ?}tương đương với }(? chỉ đơn giản là đặt tất cả các biến thành không hoạt động, đây là một không có ở đây nhưng một lần nữa, quan trọng sau này). Sau đó, nó lưu trữ chuỗi "Get Back", thực hiện một loạt các lệnh không ( //đến cuối dòng luôn là một nhận xét) và in quasP .

Chương trình đầy đủ

Đầu ra là, bạn đoán nó, Sun King 1 .

Hãy nhìn vào dòng này theo từng dòng:

  • Dòng 1

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

    Điều này đặt các biến hoạt động của chúng tôi, giống như các chương trình trước đó (bây giờ chúng ta có thể thấy rằng điều đó ?là cần thiết để không chỉ đơn giản là bật chúng lên và sau đó quay lại với}} ). Phần còn lại của dòng được nhận xét.

  • Dòng 2-4

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

    Bình luận...

  • Dòng 5

      "Sun King//"[["Sun King
    

    Ở đây chúng tôi lưu trữ chuỗi "Sun King//", và sau đó bắt đầu một bình luận khối. Điều này về cơ bản bỏ qua mọi thứ cho đến tiếp theo ]].

  • Dòng 6

     "*"BirthdaysP/"*"Birthday
    

    Vẫn bên trong khối bình luận ...

  • Dòng 7

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

    Ở đây chúng tôi thoát ra khỏi nhận xét khối trong một khoảng thời gian ngắn, để thực thi mã 8AaLsP. Điều này thực sự được sử dụng lại từ chương trình A. Vì tôi đã chọn tất cả các bài hát dài 8 chữ cái, tôi chỉ có thể sử dụng cùng một mã cho chương trình kết hợp.

    Sau đó, nó có một chút khó khăn. Lần tiếp theo chúng tôi xuất hiện từ bình luận khối, chúng tôi 8AaLsPlại thấy . Tuy nhiên, lần này, tất cả các biến không được xác định (chúng tôi đã gọi sp, in, trong chế độ tiêu thụ, loại bỏ các biến). Vì aalyêu cầu hai đối số và lần này nó chỉ có một ( 8), nó lỗi và giữ nguyên các biến.

    Tương tự như vậy, spgặp phải 8, nhận ra đó là loại sai được in và để lại các biến như hiện tại.

  • Dòng 8-13

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

    Vẫn bị kẹt trong bình luận khối đó ...

  • Dòng 14

          /"]]8AaLsP[[///
    

    Cuối cùng, chúng tôi thử gọi lại trình tự in 8 ký tự đầu tiên đó một lần nữa và nó lại thất bại một lần nữa, tạo ra hai lỗi khác. (Có 8nghĩa là các biến hiện tại 8 8, là số biến chính xác cho đến aalbây giờ, nhưng vẫn không phải là loại đúng.)


1: cũng như bốn lỗi thời gian chạy SnowmanExceptionđối với STDERR, nhưng theo meta thì không thành vấn đề .


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)Nhưng nó làm cho việc nắm bắt những gì đang diễn ra khó khăn hơn một chút ...
tò mò

14

> <> , chiều rộng = 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 

Ngôn ngữ 2D có một thời gian khá tốt với thử thách này.

Mũi tên hướng lên

     /


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

Luồng chương trình bắt đầu từ trên cùng bên trái, di chuyển sang phải. Phản /xạ lên và vì> <> là hình xuyến, chúng tôi xuất hiện lại từ phía dưới. Sau đó, chúng tôi nhấn một cái khác /và phản xạ lại, và đẩy từng ký tự klawstaClên ngăn xếp trong ""chế độ chuỗi . Cuối cùng, chúng tôi phản xạ lên trên và nhấn một >l?!;ovòng lặp, đó là cách thành ngữ để in toàn bộ ngăn xếp trong> <>.

Bản in này Catswalk.

Mũi tên hướng xuống

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

Về cơ bản điều tương tự, đẩy các nhân vật từ đi và sử dụng gương và mũi tên để điều khiển chương trình. Bản in nàyBirthday .

Kết hợp

     /

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

Các phần có liên quan ở trên (Tôi đã cắt ra rất nhiều dòng ở giữa). Sử dụng/ từ mũi tên hướng lên, chúng ta phản xạ lên trên và quấn quanh, nhưng vì bây giờ chúng ta có mũi tên hướng xuống bên dưới, một phần của mã đó được thực thi thay thế. Sau đó chúng tôi đẩy các ký tự có liên quan đến ngăn xếp và sử dụng lại vòng lặp đầu ra từ mũi tên hướng xuống.

Bản in này Hey Jude.


5

Con trăn 2, cỡ 21

Chương trình này yêu cầu thiết bị đầu cuối tương thích ANSI ( cụ thể là DOS ANSI.SYS ), vì tôi sử dụng \x1b[2Jđể xóa bàn điều khiển VÀ di chuyển con trỏ sang trên cùng bên trái. Để làm cho điều này tương thích với các thiết bị đầu cuối ANSI khác, hãy in \x1b[1J\x1b[H(cái này vẫn có thể vừa với hình lục giác kích thước 21). Tôi không thể kiểm tra phần này, vì tôi không có thiết bị đầu cuối in mã thoát ANSI.

Tôi nghĩ rằng chương trình này trông khá tuyệt, tương tự như biểu tượng phóng xạ (mặc dù bóng ASCII ám chỉ màu sắc ngược) hoặc biểu tượng của vũ khí bắn tỉa từ Metroid Prime: Hunters.

đã làm phù hợp với kích thước 17, nhưng tôi đã bị lãng quên id=0trong các mũi tên lên. Tôi không nghĩ rằng tôi có thể thu nhỏ nó xuống, vì tất cả phải nằm trên một dòng ...

Ngoài ra, tín dụng đến Sp3000 cho ý tưởng sử dụng 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"##

Mũi tên lên:

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

Mũi tên xuống:

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

"Hey Jude" là một trong những bài hát Beatles yêu thích của tôi, nhưng tôi thực sự không biết nhiều. Tôi chưa bao giờ nghe hai bài hát khác tôi đang sử dụng. Nó không phải là một thể loại tôi thường nghe.


1
1. chỉ\x1b[2J hoạt động với ANSI.SYS; nó không nên làm bất cứ điều gì trong các thiết bị đầu cuối khác. Ngoài ra, mong đợi một số nguyên sau dấu chấm phẩy. Để làm cho cả hàng và cột mặc định là 1, sử dụng . 2. và nên hoạt động trên tất cả các thiết bị đầu cuối ANSI. 3. Trên các thiết bị đầu cuối Linux, bạn chỉ cần sử dụng để đặt lại thiết bị đầu cuối. 4. có thể được thay thế bằng một byte ESC bằng chữ, trong trường hợp giúp cải thiện điểm số của bạn. \x1b[;H\x1b[H\x1b[1J\x1b[H\x1b[H\x1b[J\x1bc\x1b
Dennis

@Dennis Cảm ơn bạn đã xóa nó. Tôi vẫn sẽ không thể cải thiện điểm số của mình, vì tôi không thể tìm ra cách phá mã của mũi tên lên thành nhiều dòng.
mbomb007

2

C (gcc), base width = 17

Top, "Hey Jude"

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

Try it online!

Bottom, "Matchbox"

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

Try it online!

Hexagon, "Michelle"

        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");}///////////;

Try it online!


1

gawk, base length 15

Just found out it doesn't work with mawk :/

It's not too tricky, but being grown up in the 70s, with The Beatles still omnipresent on air, I had to answer this. First I thought awk wasn't suited, but then it came to me.

Since these scripts contain BEGIN- and/or END-blocks, they need to be told that there will be no input to execute the END-block. This can be achieved by either pressing Ctrl-D after starting them, or starting them like this:

awk -f script.awk </dev/null

which I think is more convenient. echo | awk -f script.awk will also work, but if I would have used an empty line as input I would have done this completely different.

Pointing up, prints For No One (Youtube link)

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

The essential code without comments is this. Since n isn't defined it prints "For No One" if called by itself.

    BEGIN {
   print n?

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

Pointing down, prints Blackbird

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

The essential code is this. If n was defined before it doesn't print anything. I enforced the nice output with a newline after every track name, because I had the room to do that and it looks nicer in the console. n is defined in the process; that's needed for the Hexagon.

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

Hexagon, prints I'm So Tired

       #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"}#

The essential code. Now finally that mysterious n is used. Because n is defined in the first line, the upwards pointing triangle prints the alternative output, and the downwards pointing triangle prints emptiness.

    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
      } 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.