เอาท์พุทรูปภาพ Super Mario


28

นี่เป็นปัญหาของ Luogu OJ ฉันตัดสินใจที่จะโพสต์ที่นี่เพราะใน Luogu OJ หลายคนรวมถึงฉันและเพื่อนของฉันสนใจที่จะแก้ปัญหานี้ด้วยตัวละครที่น้อยที่สุด

งานของคุณคือการส่งออก ASCII-art ต่อไปนี้:

               ************
               ####....#.
             #..###.....##....
             ###.......######              ###            ###
                ...........               #...#          #...#
               ##*#######                 #.#.#          #.#.#
            ####*******######             #.#.#          #.#.#
           ...#***.****.*###....          #...#          #...#
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####
           ######        ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
##########################################    #----------#
#.....#......##.....#......##.....#......#    #----------#
##########################################    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#
##########################################    ############

นี่คือรหัสกอล์ฟโปรแกรมที่สั้นที่สุดจึงชนะ


7
ช่องว่างเพิ่มเติม (ตัวอย่างเช่นสร้างสี่เหลี่ยมของอักขระ) ทางด้านขวามือจะอนุญาตหรือไม่ สิ่งที่เกี่ยวกับการขึ้นบรรทัดใหม่ต่อท้าย?
ระดับแม่น้ำเซนต์

@LevelRiverSt ขออภัยสำหรับการตอบกลับล่าช้า ใช่ OJ จะดึง whitespace / tab / newline ที่ต่อท้ายทั้งหมดและ whitespace / tab ทั้งหมดที่ด้านขวามือ
HighlyRadioactive

คำตอบ:


22

Brainfuck , 1347 ไบต์

ทำไมฉันถึงทำสิ่งนี้กับตัวเอง

+++++[>+++++++++>+++++++>++++++>++++++++>+++++++++>++<<<<<<-]>+>>++>++<<>...............>............>>.<<<...............<....<....>.<.>>>>>.<<<.............<.<..>...<.....>..<....>>>>>.<<<.............<...<.......>......>..<<<++[->>>............<...<<]>>>>>>.<<<................<<...........>>.....<<<++[->>>..........<.<...>.<<]>>>>>>.<<<...............<..>>.<<.......>.......<<<++[->>>..........<.<.>.<.>.<<]>>>>>>.<<<............<....>>.......<<......>...<<<++[->>>..........<.<.>.<.>.<<]>>>>>>.<<<...........<<...>><.>>...<<<.>>>....<<<.>>>.<<...<....>>..........<.<.>.<.>.>..........<.<.>.<.>.>>>>.<<<...........<<....>>>..........<<..<.....>>...........<...>............<...>>>>.<<<...........<<....>>>....<....>.....<<<....>>>>>.<<<.....<<<++[->>>........<....<<]>>>>>>.<<<...<<<++[->>>........<......<<]>>>>>>.<<<<<<+++++++[->>........<<]>>......>>>>.<<<<<<+++[->>.<...>.<......>.<.>.<<]>>.>>>..................<<<.>>>>.<<<<<<+++++++[->>......<<]>>.>>>..................<<<.>>>>.<<<<<<+++[->>.<..>.<....>.<....>.<<]<+++++[->>>....<<<]>>>>>>>.<<<<<<+++++++[->>......<<]>>>....<.>>>..........<<<.>>>>.<<<<<<+++[->>.<.....>.<......>.<<]>>>....<.>>>..........<<<.>>>>.<<<<<<+++++++[->>......<<]>>>....<.>>>..........<<<.>>>>.<<<<<<+++[->>.<.>.<..>.<....>.<..>.<<]>>>....<.>>>..........<<<.>>>>.<<<<<<+++++++[->>......<<]>>>....<............

ลองออนไลน์!

รุ่น "ที่อ่านได้":

+++++[>+++++++++>+++++++>++++++>++++++++>+++++++++>++<<<<<<-]>+>>++>++

<<
>...............>............>>.
<<<...............<....<....>.<.>>>>>.
<<<.............<.<..>...<.....>..<....>>>>>.
<<<.............<...<.......>......>..<<<++[->>>............<...<<]>>>>>>.
<<<................<<...........>>.....<<<++[->>>..........<.<...>.<<]>>>>>>.
<<<...............<..>>.<<.......>.......<<<++[->>>..........<.<.>.<.>.<<]>>>>>>.
<<<............<....>>.......<<......>...<<<++[->>>..........<.<.>.<.>.<<]>>>>>>.
<<<...........<<...>><.>>...<<<.>>>....<<<.>>>.<<...<....>>..........<.<.>.<.>.>..........<.<.>.<.>.>>>>.
<<<...........<<....>>>..........<<..<.....>>...........<...>............<...>>>>.
<<<...........<<....>>>....<....>.....<<<....>>>>>.
<<<.....<<<++[->>>........<....<<]>>>>>>.
<<<...<<<++[->>>........<......<<]>>>>>>.
<<<<<<+++++++[->>........<<]>>......>>>>.
<<<<<<+++[->>.<...>.<......>.<.>.<<]>>.>>>..................<<<.>>>>.
<<<<<<+++++++[->>......<<]>>.>>>..................<<<.>>>>.
<<<<<<+++[->>.<..>.<....>.<....>.<<]<+++++[->>>....<<<]>>>>>>>.
<<<<<<+++++++[->>......<<]>>>....<.>>>..........<<<.>>>>.
<<<<<<+++[->>.<.....>.<......>.<<]>>>....<.>>>..........<<<.>>>>.
<<<<<<+++++++[->>......<<]>>>....<.>>>..........<<<.>>>>.
<<<<<<+++[->>.<.>.<..>.<....>.<..>.<<]>>>....<.>>>..........<<<.>>>>.
<<<<<<+++++++[->>......<<]>>>....<............

1
นั่นคือไม่มีอะไรสั้นของที่น่าตื่นตาตื่นใจ คุณออกแบบด้วยตัวเองหรือใช้ programm เพื่อช่วยเหลือคุณ?
jaaq

4
ทำเอง นอกจากนี้ฉันรู้ว่าอาจมีวิธีที่ดีกว่าและสั้นกว่าในการทำเช่นนี้ แต่มันเป็นความเจ็บปวดระหว่างการวาดมาริโอใน brainfuck ด้วยมือ
คนที่แต่งตัวประหลาดสุ่ม

5
ด้านบวกคุณรู้ว่าไม่มีใครจะลองรุ่นที่สั้นกว่าคู่แข่ง: D
CD001

4
@ CD001 นั่นคือความท้าทายใช่ไหม
Benjamin Urquhart

1
@Evorlor ดีมีคอมไพเลอร์ brainfuck แมโครและสคริปต์ที่สามารถแปลคำแนะนำที่สามารถอ่านได้เป็น brainfuck โดย "ด้วยมือ" ฉันหมายถึงว่าเขาสร้างรหัสทั้งหมดด้วยตัวเองซึ่งเขาทำจริง ๆ ความรุ่งโรจน์สำหรับสิ่งนั้น
jaaq

16

T-SQL, 322 298 288 ไบต์

SELECT CONCAT('',DECOMPRESS(CAST('H4sIAAAAAAACA6WRQYrEIBQF955CqJ0wdf/jjehM2rwOdofUQvIoHj9f65m2UMLRsYNng/4ZQU0NThjUtBFLDXwRBpWIWYfGpCaIRCy5cZswuFVX6U3bOAA73/+8nXYw2368uWwfj3r5MKzfq4W0UHhEQcUBsk0/b9yafllX9P/YpeDu7rVDTF6226WoPpy6bMUmPZ66UH4BHz4rVE8EAAA='as XML).value('.','varbinary(max)')))

การบีบอัดการใช้ G-Zip ที่สร้างขึ้นใน SQL 2016 และต่อมาพร้อมกับการเข้ารหัส Base64, ดูเคล็ดลับนี้โพสต์รายละเอียด

ใน SSMS คุณจะต้องแสดงผลเป็นข้อความหลังจากเล่นซอกับข้อ จำกัด อักขระ SSMS ในการตั้งค่าหรือเพียงคัดลอกและวางผลลัพธ์ไปยังหน้าต่างรหัส:

ป้อนคำอธิบายรูปภาพที่นี่

แก้ไข : บันทึก 24 ไบต์ด้วยสตริงที่บีบอัดได้ดีขึ้นด้วย @someone; บันทึก 10 ไบต์ด้วยการแปลงโดยนัยโดยใช้CONCAT@digscoop


2
ฉันคิดว่าฉันมีสตริง gzip base64 H4sIAAAAAAACA6WRQYrEIBQF955CqJ0wdf/jjehM2rwOdofUQvIoHj9f65m2UMLRsYNng/4ZQU0NThjUtBFLDXwRBpWIWYfGpCaIRCy5cZswuFVX6U3bOAA73/+8nXYw2368uWwfj3r5MKzfq4W0UHhEQcUBsk0/b9yafllX9P/YpeDu7rVDTF6226WoPpy6bMUmPZ66UH4BHz4rVE8EAAA=สั้น ฉันไม่สามารถทดสอบสิ่งนี้ได้เนื่องจากฉันไม่รู้ว่าจะทำอย่างไร แต่คุณอาจจะหรืออาจจะไม่=สนใจ
สรรพนามของฉันคือ monicareinstate

@someone ขอบคุณสตริงนั้นใช้งานได้ (ไม่จำเป็น=) และประหยัด 24 ไบต์; คาดเดาการเข้ารหัสของฉันอยู่ไกลจากอุดมคติ
BradC

1
คุณสามารถใช้ตัวแปรนิรนามและการแปลงโดยนัยเพื่อทำให้สั้นลงอีกเล็กน้อย ลอง: DECLARE @ XML='H4sIAAAAAAACA6WRQYrEIBQF955CqJ0wdf/jjehM2rwOdofUQvIoHj9f65m2UMLRsYNng/4ZQU0NThjUtBFLDXwRBpWIWYfGpCaIRCy5cZswuFVX6U3bOAA73/+8nXYw2368uWwfj3r5MKzfq4W0UHhEQcUBsk0/b9yafllX9P/YpeDu7rVDTF6226WoPpy6bMUmPZ66UH4BHz4rVE8EAAA='SELECT CONCAT('',DECOMPRESS(@.value('.','varbinary(max)')))
digscoop

ขอบคุณ @digscoop ช่วยฉัน 10 ไบต์ ฉันใช้CONCATเคล็ดลับ แต่ไม่ใช่ตัวแปร XML เนื่องจากจะเพิ่มกลับมา 3 ไบต์ (มันจะสั้นกว่า แต่ในสถานการณ์ที่ฉันมีตัวแปรอยู่แล้ว)
BradC

12

PHP , 176 155 ไบต์

-21 ไบต์ขอบคุณสตริงที่อัดซูเปอร์ไรอันมัวร์

รุ่นนี้ใช้เอาต์พุตดิบของgzdeflateและมีข้อมูลไบนารีที่ไม่สามารถพิมพ์ได้ดังนั้นโค้ดของตัวเองและลิงค์ TIO ไม่สามารถโพสต์ได้ที่นี่ แต่ที่นี่เป็นฐานสิบหกของมัน:

000000  3c 3f 3d 67 7a 69 6e 66 6c 61 74 65 28 27 a5 91
000010  81 06 04 21 00 44 01 e8 2b e2 01 71 ef ff 3f ef
000020  5c 91 76 f6 64 57 0f 31 c6 98 a6 ea 95 b6 50 c2
000030  03 50 c5 ab 83 0e 47 41 4d 1b 1c d0 a9 e9 86 2c
000040  35 70 62 38 a8 84 cc 38 34 06 35 41 24 64 c9 c5
000050  6d 40 e7 55 5c fd a5 6d fd 00 54 9f 5f 5e b5 4d
000060  40 d5 a7 2f 37 d3 f3 53 ef 1f b3 0e 22 e2 90 2e
000070  14 8e 28 a8 d8 41 b6 ea 73 e3 55 fb df b8 a2 3a
000080  8e ad 4a de 6d ef 0f 16 cd cb ba 9d ca e8 59 eb
000090  b2 8a 9d 3a 6d 5d f8 02 27 29 3b

ขอบคุณ@dzaimaนี่คือ TIO ที่ใช้ bash เพื่อสร้างและเรียกใช้ไฟล์นี้: ลองออนไลน์!

โดยทั่วไปแล้วจะกลับคำย่อและพิมพ์ผลลัพธ์ บันทึกเป็นไฟล์ไบนารีจากนั้นเรียกใช้งานเช่นนี้:php mario.php


PHP , 239 216 ไบต์

-23 ไบต์ขอบคุณสตริงที่อัดซูเปอร์ไรอันมัวร์

<?=gzinflate(base64_decode('pZGBBgQhAEQB6CviAXHv/z/vXJF29mRXDzHGmKbqlbZQwgNQxauDDkdBTRsc0Knphiw1cGI4qITMODQGNUEkZMnFbUDnVVz9pW39AFSfX161TUDVpy830/NT7x+zDiLikC4Ujiio2EG26nPjVfvfuKI6jq1K3m3vDxbNy7qdyuhZ67KKnTptXfgC'));

ลองออนไลน์!

เช่นเดียวกับรุ่นด้านบน แต่ใช้base64_encodeบนเอาต์พุตgzdeflateดังนั้นโค้ดสามารถอ่านได้และลิงก์ TIO ก็มีให้เช่นกัน โดยทั่วไปแล้วจะกลับฐาน 64 และยุบและพิมพ์ผลลัพธ์


1
ลิงก์ TIOโดยใช้ bash เพื่อสร้างไฟล์อย่างถูกต้อง
dzaima

@dzaima ขอบคุณมาก! ไม่ทราบว่าเราสามารถเรียกใช้คำสั่งอื่นด้วยการทุบตีใน TIO
กลางคืน 2

1
บันทึก 2 ไบต์สำหรับรุ่น Pro หรือ 22 ไบต์สำหรับกึ่งอาชีพกับ pZGBBgQhAEQB6CviAXHv / z / vXJF29mRXDzHGmKbqlbZQwgNQxauDDkdBTRsc0Knphiw1cGI4qITMODQGNUEkZMnFbUDnVVz9pW39AFSfX161TUDVpy830 / NT7x + zDiLikC4Ujiio2EG26nPjVfvfuKI6jq1K3m3vDxbNy7qdyuhZ67KKnTptXfgC
ไรอันมัวร์

1
@ Ryan Moore ขอบคุณมาก! มันบันทึกจริง 21 ไบต์ในรุ่นไบนารีและ 23 ไบต์ในรุ่นที่อ่าน คุณบรรลุการบีบอัดที่สูงขึ้นเช่นนี้ได้อย่างไร คุณมีเครื่องมือพิเศษและการตั้งค่าหรือไม่?
กลางคืน 2

1
@ Night2 ฉันใช้ advdef จากadvancemame.it - มันใช้ Zopfli เพื่อลองตัวเลือกที่แตกต่างกัน zillion และมักจะทำการบีบอัดได้ดีกว่า gzip ปกติ ปัญหาคือมันใช้งานได้กับเนื้อหา. gz เท่านั้นดังนั้นคุณต้อง gzip ดั้งเดิม, advdef the. gz จากนั้นตัดส่วนหัว. gz สำหรับ PHP gzinflate เพื่อใช้งาน
Ryan Moore

10

Bubblegum , 138 ไบต์

00000000: a591 410a 0321 0003 efbe 6261 6e42 e7ff  ..A..!....banB..
00000010: cf2b b522 6e5a 6cc5 3908 2184 18bd eed4  .+."nZl.9.!.....
00000020: 8912 1e80 2ade 1db4 3b82 9a76 f794 c695  ....*...;..v....
00000030: 6ec8 7205 0e0c 0795 9019 874a 1677 1009  n.r........J.w..
00000040: 5972 717d 4363 2bae bed2 d676 00aa ff5f  Yrq}Cc+....v..._
00000050: 5eb5 0e40 d5df 2f17 e9f1 a99a 1f33 0f22  ^..@../......3."
00000060: e290 2e14 8e28 a8d8 4096 eaf1 c156 fbd7  .....(..@....V..
00000070: b8a2 f663 a992 bded edc1 a279 5ab7 5219  ...c.......yZ.R.
00000080: 3d6b 9d56 b152 a7ad 134f                 =k.V.R...O

ลองออนไลน์!


1
สำหรับการเปรียบเทียบฉันพยายามส่งออกภาพทั้งหมดเป็นสตริงบีบอัดถ่านเดียวซึ่งส่งผลให้โปรแกรม 155- ไบต์ การพยายามวาดชิ้นส่วนโดยใช้คำสั่ง Charcoal จะเป็นการเพิ่มความยาว
Neil

"ภาษา" ที่น่าสนใจจริง ๆ มันเตะ $ $$
roblogic

8

เยลลี่ , 235 213 ไบต์

“µ!æeıçȷ&#ð%ø&$dɓeñe÷Ɲ$Ƥ&ɓ'¤"' 'dd%dẎeȤdƤƬddƲdƝ‘s2⁴+Ɱ23¤żẎṣjƭƒ“Ç=ÇgƲ'€$fȤeƲ€fƈiÆf¿fÐɦÇ!×Çe2jÑþµþ¿g8i€þµþ½%4Ɲ5Ɲ2fƲ××½Ʋ;#½f¿f½Ʋ5¤6Ʋ€g¬g½i¬ⱮvØØØḳƁḳÞÞÞⱮpœßßßdœ⁾œŒŒŒdœ⁾¤o‘b50U+Ø0U‘Œṙṁ1xⱮ“&ðẏṪ¶ẏ×Ṙ⁷Ƈ⁾1Ẓṁn#’b64¤¤ị“ *#.-”Y

ลองออนไลน์!

ใช้การเข้ารหัสการรันความยาวและการแทนที่ลำดับความยาวทั่วไป 2 ด้วยตัวเลขหลักเดียว ห้ามใช้ไลบรารีการบีบอัดมาตรฐานใด ๆ เช่น gzip โดยรวมมีข้อมูลบีบอัด 169 ไบต์และรหัส 44 รหัส

คำอธิบาย

ขั้นตอนที่ 1: แทนที่ค่าในข้อมูลระหว่าง 17 ถึง 39 ด้วยคู่ของไบต์ที่ได้รับการยกย่อง

“µ...Ɲ‘                     | Base-250 integer list 9, 33, 22, 101, 25, 23, 26, 38, 35, 24, 37, 29, 38, 36, 100, 155, 101, 27, 101, 28, 150, 36, 151, 38, 155, 39, 3, 34, 39, 32, 39, 100, 100, 37, 100, 209, 101, 154, 100, 151, 152, 100, 100, 153, 100, 150
       s2                   | Split into twos
             ¤ż             | Zip the following as a nilad with this:
         ⁴                  | - 16
          +Ɱ23               | - Add this to implicit range from 1 to 23
             Ẏ              | Tighten (join outermost lists)
                   ƒ“Ç...o‘ | Reduce using the following, and starting with the base-250 integer list 14, 61, 14, 103, 153, 39, 12, 36, 102, 154, 101, 153, 12, 102, 156, 105, 13, 102, 11, 102, 15, 160, 14, 33, 17, 14, 101, 50, 106, 16, 31, 9, 31, 11, 103, 56, 105, 12, 31, 9, 31, 10, 37, 52, 150, 53, 150, 50, 102, 153, 17, 17, 10, 153, 59, 35, 10, 102, 11, 102, 10, 153, 53, 3, 54, 153, 12, 103, 7, 103, 10, 105, 7, 149, 118, 18, 18, 18, 217, 143, 217, 20, 20, 20, 149, 112, 30, 21, 21, 21, 100, 30, 142, 30, 19, 19, 19, 100, 30, 142, 3, 111
                  ƭ         | - Alternate between:
                ṣ           |   - Splitting
                 j          |   - And joining

ขั้นตอนที่ 2: ถอดรหัสความยาวรันและแปลงเป็นสตริง

b50                                 | Convert to base 50
   U                                | Reverse order of bytes
    +Ø0                             | Add 0,0
       U                            | Reverse order again (effectively the last three links add in leading zeros where needed)
        ‘                           | Increment by 1
         Œṙ                         | Run length decode
           ṁ            ¤           | Mould like the following as a nilad:
            1xⱮ        ¤            | - 1 repeated each of the following as a nilad:
             “&...#’                |   - Base-250 integer 36418435425519061363927141799858777786
                    b64             |   - Convert to base 64
                         ị“ *#.-”   | Index into " *#.-"
                                 Y  | Join ith newlines

7

LaTeX, 452 448 ไบต์

สร้างด้วยการแทนที่ bigram (และหนึ่ง trigram) แทนการเขียนโปรแกรมวนรอบเพื่อแทนที่สัญลักษณ์หลาย ๆ อันติดต่อกัน

\newlinechar`+\def~#1{\catcode`#1=13\lccode`~=`#1\lowercase{\def~}}~$#1#2{~#1{#2#2}}~l#1#2#3{~#1{#2#3}}\catcode`#=12$_*$[_$]{ }$^]$!^$<#$><$=>$&=$@.$:@$)-$()$?($/&lx#.$;xl'#@l"<#l`!^l|!]lv#+lc:@lw><lk#:lh`]lg'.lf.#lq#|ld<:lr<@lnfc~s{?)v}la/=li'klj^#l,js\typeout{h [[[+h >:x+` '":.d+` "c.wh"`"+!!:c.h gqgvh <*>"!! ;q;v`>[_*w` ;q;v| @f_*.[.*":|gqgv| :[[_d.| "`"+| :[^[*:+` >!>+| w!w+/&=w+g#cxrnxrnx<?sa"?sikrkkrkk&>va<,kndn<:n#,a<,xi'<.i'<.i'#,a<^=>}

LaTeX, 506 ไบต์

ส่วนใหญ่แล้วจะมีตัวแปรที่มีประสิทธิภาพมากกว่า แต่นี่คือสิ่งที่ฉันจัดการเพื่อจัดการด้วยมือ (ไม่มีเครื่องมือบีบอัดในตัวใน LaTeX ... ) ฉันสร้างลูปขนาดเล็กเพื่อแทนที่ลำดับที่ต่อเนื่องกัน

\def\|{\catcode`}\def~#1{\|#1=13\lccode`~=`#1\lowercase{\def~}}\| =12~@#1#2{\ifnum#1>0#2@{\numexpr#1-1}{#2}\fi}\|#=12~){@3}~({@4}~?{(.}~/{( }~<{@9  }~>{< }~_{>)#}~[{<#).#}~]{<#.#.#}~^{#).#@6.#.#}~!{#@{18}-#}~={@{42}#}~'{?}~&{#..#?#?#}~;{/#@9--#}~:{#@5.#@6.#}~"{#.#..#?#..#}\newlinechar`+\typeout{>/@{12}{*}+>/(#?#.+>  #..)#@5.##?+>  )#@7.@6#) _ _+>@5 @{11}.@5 @2[+>/##*@7#@7 @2]+> (#@7*@6#) @2]+>).#)*.(*.*)#?@2[+>?@9**##@5._ _+>?(*/@5*?+>  (#@8 (#+>@6#@8 @6#+@{62}#+)^!+=!+)&@{20}#+=;+):;+=;+)";+=/@{12}#}

เทอร์มินัลเอาท์พุต (จากรหัสทั้งสอง):

This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdf
latex)
 restricted \write18 enabled.
entering extended mode
(./mariocg.tex
LaTeX2e <2018-12-01>
               ************
               ####....#.
             #..###.....##....
             ###.......######              ###            ###
                ...........               #...#          #...#
               ##*#######                 #.#.#          #.#.#
            ####*******######             #.#.#          #.#.#
           ...#***.****.*###....          #...#          #...#
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####
           ######        ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
##########################################    #----------#
#.....#......##.....#......##.....#......#    #----------#
##########################################    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#
##########################################    ############
)

5

Bash + coreutils + xz, 243 242 240 ไบต์

base64 -d<<<4AROAJpdABBtAVsJZEAxAEVT46Z4yzQSDRh1V2s3yKKQ3CiFBCqNr55BVH/f7Qz/mkCIrVe+i4qcFSY5BEjUGbKH55TbsFibiXAoQ8LLpf0KeeR/Qj+UVG3Y3+Xx/Xt+0BI+rKPZCnr2NYt5PB4YsQBJeHbN+TCDB9VxVA5l2MZerD23kdk9GwTt9T7j2LGzPwyNGnq9XrJxWS3PWQOEtp8A|xz -qdFraw

1
ไม่จำเป็นต้องใช้เครื่องหมายคำพูดคู่
TheSola10

@ TheSola10 ขอบคุณ! บันทึก 2 ไบต์
David Conrad

4

ถัง , 2204 1012 745 ไบต์

(35*| )(34*|\*)\
(35*| )(4|\#)(4|\.)\#\.\
(35*| )\#\.\.(3|\#)(5|\.)\#\#(4|\.)\
(76+| )(3|\#)(7|\.)(6|\#)  (2|(34*| )(3|\#))\
(82*| )(65+|\.)(5| )(2|(91+| )\#(3|\.)\#)\
(35*| )\#\#\*(7|\#)(7| )(2|(91+| )\#\.\#\.\#)\
(34*| )(4|\#)(7|\*)(6|\#)   (2|(91+| )\#\.\#\.\#)\
(65+| )(3|\.)\#(3|\*)\.(4|\*)\.\*(3|\#)(4|\.)(2|(91+| )\#(3|\.)\#)\
(65+| )(4|\.)(91+|\*)\#\#(5|\.)(65+| )(3|\#)(34*| )(3|\#)\
(65+| )(4|\.)(4|\*)    (5|\*)(4|\.)\
     (2|(8| )(4|\#))\
   (2|(8| )(6|\#))\
(88*2-|\#)\
(3|\#(3|\.)\#(6|\.)\#\.\#)\#(92*|\-)\#\
(67*1+|\#)(92*|\-)\#\
(3|\#\.\.\#(4|\.)\#(4|\.)\#)(54*|\#)\
(67*|\#)    \#(91+|\-)\#\
(3|\#(5|\.)\#(6|\.)\#)    \#(91+|\-)\#\
(67*|\#)    \#(91+|\-)\#\
(3|\#\.\#\.\.\#(4|\.)\#\.\.\#)    \#(91+|\-)\#\
(67*|\#)    (34*|\#)(

ลองออนไลน์!

บันทึกแล้ว 267 ไบต์ขอบคุณ @Sriotchilism O'Zaic

โปรแกรม 1,012 ไบต์

(35*| )(34*|\*)\
(35*| )(4|\#)(4|\.)\#\.\
(35*| )\#(2|\.)(3|\#)(5|\.)(2|\#)(4|\.)\
(76+| )(3|\#)(7|\.)(6|\#)(72*| )(3|\#)(34*| )(3|\#)\
(82*| )(65+|\.)(35*| )\#(3|\.)\#(91+| )\#(3|\.)\#\
(35*| )(2|\#)\*(7|\#)(98+| )\#\.\#\.\#(91+| )\#\.\#\.\#\
(34*| )(4|\#)(7|\*)(6|\#)(76+| )\#\.\#\.\#(91+| )\#\.\#\.\#\
(65+| )(3|\.)\#(3|\*)\.(4|\*)\.\*(3|\#)(4|\.)(91+| )\#(3|\.)\#(91+| )\#(3|\.)\#\
(65+| )(4|\.)(91+|\*)(2|\#)(5|\.)(65+| )(3|\#)(34*| )(3|\#)\
(65+| )(4|\.)(4|\*)(4| )(5|\*)(4|\.)\
(67+| )(4|\#)(8| )(4|\#)\
(65+| )(6|\#)(8| )(6|\#)\
(88*2-|\#)\
\#(3|\.)\#(6|\.)\#\.(2|\#)(3|\.)\#(6|\.)\#\.(2|\#)(3|\.)\#(6|\.)\#\.(2|\#)(92*|\-)\#\
(67*1+|\#)(92*|\-)\#\
\#(2|\.)\#(4|\.)\#(4|\.)(2|\#)(2|\.)\#(4|\.)\#(4|\.)(2|\#)(2|\.)\#(4|\.)\#(4|\.)(37*|\#)\
(67*|\#)(4| )\#(91+|\-)\#\
\#(5|\.)\#(6|\.)(2|\#)(5|\.)\#(6|\.)(2|\#)(5|\.)\#(6|\.)\#(4| )\#(91+|\-)\#\
(67*|\#)(4| )\#(91+|\-)\#\
\#\.\#(2|\.)\#(4|\.)\#(2|\.)(2|\#)\.\#(2|\.)\#(4|\.)\#(2|\.)(2|\#)\.\#(2|\.)\#(4|\.)\#(2|\.)\#(4| )\#(91+|\-)\#\
(67*|\#)(4| )(34*|\#)

ลองออนไลน์!

นี่เป็นเพียงการเข้ารหัสความยาวของภาพ ascii แต่นำมาใช้ในถัง

โปรแกรมเก่า

\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \*\*\*\*\*\*\*\*\*\*\*\*\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\#\#\#\.\.\.\.\#\.\
\ \ \ \ \ \ \ \ \ \ \ \ \ \#\.\.\#\#\#\.\.\.\.\.\#\#\.\.\.\.\
\ \ \ \ \ \ \ \ \ \ \ \ \ \#\#\#\.\.\.\.\.\.\.\#\#\#\#\#\#\ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\#\#\ \ \ \ \ \ \ \ \ \ \ \ \#\#\#\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \.\.\.\.\.\.\.\.\.\.\.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\.\.\.\#\ \ \ \ \ \ \ \ \ \ \#\.\.\.\#\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\#\*\#\#\#\#\#\#\#\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\.\#\.\#\ \ \ \ \ \ \ \ \ \ \#\.\#\.\#\
\ \ \ \ \ \ \ \ \ \ \ \ \#\#\#\#\*\*\*\*\*\*\*\#\#\#\#\#\#\ \ \ \ \ \ \ \ \ \ \ \ \ \#\.\#\.\#\ \ \ \ \ \ \ \ \ \ \#\.\#\.\#\
\ \ \ \ \ \ \ \ \ \ \ \.\.\.\#\*\*\*\.\*\*\*\*\.\*\#\#\#\.\.\.\.\ \ \ \ \ \ \ \ \ \ \#\.\.\.\#\ \ \ \ \ \ \ \ \ \ \#\.\.\.\#\
\ \ \ \ \ \ \ \ \ \ \ \.\.\.\.\*\*\*\*\*\*\*\*\*\*\#\#\.\.\.\.\.\ \ \ \ \ \ \ \ \ \ \ \#\#\#\ \ \ \ \ \ \ \ \ \ \ \ \#\#\#\
\ \ \ \ \ \ \ \ \ \ \ \.\.\.\.\*\*\*\*\ \ \ \ \*\*\*\*\*\.\.\.\.\
\ \ \ \ \ \ \ \ \ \ \ \ \ \#\#\#\#\ \ \ \ \ \ \ \ \#\#\#\#\
\ \ \ \ \ \ \ \ \ \ \ \#\#\#\#\#\#\ \ \ \ \ \ \ \ \#\#\#\#\#\#\
\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\
\#\.\.\.\#\.\.\.\.\.\.\#\.\#\#\.\.\.\#\.\.\.\.\.\.\#\.\#\#\.\.\.\#\.\.\.\.\.\.\#\.\#\#\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\#\
\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\#\
\#\.\.\#\.\.\.\.\#\.\.\.\.\#\#\.\.\#\.\.\.\.\#\.\.\.\.\#\#\.\.\#\.\.\.\.\#\.\.\.\.\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\
\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\ \ \ \ \#\-\-\-\-\-\-\-\-\-\-\#\
\#\.\.\.\.\.\#\.\.\.\.\.\.\#\#\.\.\.\.\.\#\.\.\.\.\.\.\#\#\.\.\.\.\.\#\.\.\.\.\.\.\#\ \ \ \ \#\-\-\-\-\-\-\-\-\-\-\#\
\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\ \ \ \ \#\-\-\-\-\-\-\-\-\-\-\#\
\#\.\#\.\.\#\.\.\.\.\#\.\.\#\#\.\#\.\.\#\.\.\.\.\#\.\.\#\#\.\#\.\.\#\.\.\.\.\#\.\.\#\ \ \ \ \#\-\-\-\-\-\-\-\-\-\-\#\
\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\ \ \ \ \#\#\#\#\#\#\#\#\#\#\#\#

ลองออนไลน์!

ฉันรู้ว่านี่อาจจะไม่ชนะการแข่งขันใด ๆ แต่เดี๋ยวก่อนมันดูดี แท้จริงเพียงแค่หลบหนีตัวละครทุกตัวและพิมพ์ ฉันหมายถึงมันสามารถเล่นกอล์ฟได้ แต่คุณไม่ชอบโปรแกรมศิลปะ ASCII ใช่ไหม


@A_ ฉันเริ่มลองด้วยตัวสร้างที่ฉันใช้ (ฉันไม่ได้เขียนด้วยมือ) แต่มันใช้งานไม่ได้
Jono 2906


และตอนนี้ฉันเข้าใจแล้วว่าวิธีการทำงานนี้อีกเล็กน้อยที่นี่เป็นรุ่นที่สั้นกว่ามาก
ข้าวสาลีตัวช่วยสร้าง

4

JavaScript (Node.js) ,  265  264 ไบต์

บันทึกแล้ว 1 ไบต์ขอบคุณ @ Night2

กิ่ว.

_=>require('zlib').inflateRawSync(Buffer('pVJbDoAwCPvfKZb0b4nc/3jCRAWGOrN+qNiV8litDs2geKqCQQyQZ/inMnS8SpQRKSsYkoYw2la6ESuSpCEcq27IjPt5eDmCXFQ6jCTFl1yqYSW1/tAxzBcvp+9l6BCnJ3eqr6Wmi4H9LoHzLPNYQukd6k04bspjtA345Z7K1QDnPX2O0uKn0QcWnE13b9EoXXE1XeEtWnU12AE','base64'))+''

ลองออนไลน์!


JavaScript (Node.js) , 318 ไบต์

การแทนที่สตริงที่ต่อเนื่องกัน

_=>[...`L=J00BP
FM1A46E.##3B
2G@;<9#7#:7#8.653*42-1.0 #`].reduce((s,c,i)=>s.split(Buffer([94-i])).join(c+`A= >9SOKQ< <N0#0H<> ?0C5;D3
13:498#653*42-1.0 #`[i]),`?T]=JT29#.\\A[O9\\[3.I?10#?0C779D.?TSYJT0*I#77 UBUJ2=8*I? UBUW3<8*.=.*[YYW9]8Z.K0#?0CK9=4=*9\\272WI7I
F;6I
AX3X3X@HV#@HA>>0L>0L>;2CVR>EZEZPRVRM^0<^0<^#RV462`)

ลองออนไลน์!


JavaScript (ES7), 340 ไบต์

บด

_=>[...'[{+SUPER~Mario!}]'+2**29].reduce((s,c)=>(l=s.split(c)).join(l.pop()),`U15555
U13#9#.~o#739}9~o397.28+S
18PP7.1ii
U13*2#18 a 335E28oa7}5.E.*39ii~P55E#9.8S~PEooE*P~o331+33~21+26r
#RRR00#6#00#
#[3[3[r#6]
9!9!9!]6]
#M3M3M#]6oor331o+9#P0{{{7..8U 6
2222r##E**]oo#0-#}.#!.97#+ iU#7}r2223a#}}U#}}~M}79#7~
8R7!.3E5*P77U11S3#8 3#+o {---[799`)

ลองออนไลน์!

หรือที่นี่:


4

C (gcc) , 322 320 318 316 ไบต์

-2 ไบต์ต้องขอบคุณแมวป่า

f(i,c){for(i=0;c="/<q/TDQAq-QBSERDq-SGV.S,Sq/!K/QCQ*QCQq/R1W/\"QAQAQ*QAQAQq,T7V-QAQAQ*QAQAQq+CQ3A4A1SD*QCQ*QCQq+D:RE+S,Sq+D4$5Dq-T(Tq+V(Vq____RqQCQFQARCQFQARCQFQARocQq__]ocQqQBQDQDRBQDQDRBQDQD_Vq__\\$QjQqQEQFREQFREQFQ$QjQq__\\$QjQqQAQBQDQBRAQBQDQBRAQBQDQBQ$QjQq__\\$\\"[i++];)for(;c--%16;)printf(L" *.#-\n"+c/16-2);}

ลองออนไลน์!


4

Bash + coreutils, 269 262 261 Bytes

base64 -d <<<H4sICLN9e10CA01BUklPAKVSWw6AMAj73ymW9G+J3P94wkQFhjqzfqjYlfJYrQ7NoHiqgkEMkGf4pzJ0vEqUESkrGJKGMNpWuhErkqQhHKtuyIz7eXg5glxUOowkxZdcqmEltf7QMcwXL6fvZegQpyd3qq+lpouB/S6B8yzzWELpHepNOG7KY7QN+OWeytUA5z19jtLip9EHFpxNd2/RKF1xNV3hLVp1tWPaAR8+K1RPBAAA|gunzip

เล็ก ๆ น้อย ๆ - ไม่มีอะไรฉลาดเกิดขึ้นที่นี่ ฉันไม่แน่ใจว่าฉันได้รับอนุญาตให้ใช้ gzip เช่นนี้หรือไม่ ถ้าฉันไม่ใช่ฉันไม่ต้องสงสัยเลยว่ามีใครบางคนจะตะโกนใส่ฉัน

(ดีกว่าถ้าฉันลบช่องว่าง / คำพูดไม่มีจุดหมาย)

ขอบคุณ @manatwork สำหรับการบันทึกไบต์

ลองออนไลน์!


1
เคล็ดลับของDigital Traumaอาจช่วยให้คุณลดได้อีกเล็กน้อย
จัดการ

@ การจัดการงานขอบคุณที่ช่วยให้ฉันเพิ่มประสิทธิภาพไบต์ออกจากคำตอบของฉัน
David Conrad

2
คุณสามารถวางechoคำสั่งและไปป์โดยทำให้มันbase64 -d<<<...|gunzip
TheSola10

4

Python3, 921 916 752 751 539 534 476 ไบต์

และนี่คือเวอร์ชั่นยุติธรรมที่บังคับใช้ ฉันใช้สคริปต์เพื่อนับอักขระแต่ละตัวควรเหมือนกัน:

w,s,d,r=' *.#'
m='--'
n=m*5
A=d*2
B=d*3
C=d*4
D=d*5
E=d*6
F=r*2
G=r*3
H=r*4
I=r*6
J=r*42
K=w*10
L=K+w
M=L+w
N=M+w
O=w*15
P=w*4
Q=w*8
R=d+r
S=r+R+R
T=B+r
U=r+T
V=r+A
W=r+d+F+T+E
X=r+C
Y=r+E+F+D
Z=R+A+X+V
a=r+P+r+n+r
b=J+P+r
c=F+A+X+X
e=b+n+r
f=s*12
g=d*7
h=s*3
j=s*4
k=r*62
l=m*9
o=r*11
p=r*21
z='\n'
for i in"OfzOHCrdzNVGDFCzNGgINwGMGzOwDEOUKUzOFsGHNPSKSzMHhjINSKSzLThdjdsGCKUKUzLCjhhFDLGMGzLCjPjsCzNHQHzLIQIzkzUEWWrdFlrzJrlrzVXXccpzezrDYYrEazezrZFZFZazboz":print(end=eval(i))

ลองออนไลน์!

ได้รับความอนุเคราะห์จากพวกที่ยอดเยี่ยมในความคิดเห็นที่ดีกว่าฉันมาก!

และนี่คือสคริปต์ (python3) สำหรับผู้อื่นที่อาจต้องการสร้างรหัสบางอย่างและขี้เกียจ / มีประสิทธิภาพเกินกว่าที่จะนับด้วยตนเอง:

mario = '''
               ************
               ####....#.
             #..###.....##....
             ###.......######              ###            ###
                ...........               #...#          #...#
               ##*#######                 #.#.#          #.#.#
            ####*******######             #.#.#          #.#.#
           ...#***.****.*###....          #...#          #...#
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####
           ######        ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
##########################################    #----------#
#.....#......##.....#......##.....#......#    #----------#
##########################################    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#
##########################################    ############
'''

curr_char = ""
count = 0
for i in mario:
    if i == curr_char:
        count += 1
    else:
        if curr_char != '\n':

            if curr_char == ' ':
                curr_char = 'w'
            elif curr_char == '#':
                curr_char = 'r'
            elif curr_char == ".":
                curr_char = "d"
            elif curr_char == "-":
                curr_char = "m"
            elif curr_char == '*':
                curr_char = 's'

            print(curr_char + '*' + str(count), end="+")
        else:
            print(",", end="")

        curr_char = i
        count = 1

ช่องโหว่ของ Python3 ถูกละเมิดมีขนาด 167 ไบต์

เนื่องจากไม่มีการพูดเกี่ยวกับช่องโหว่มาตรฐานฉันจะแอบเข้าไปที่นี่ในขณะที่ฉันสามารถทำได้ TIO ไม่ชอบ urllib ด้วยเหตุผลบางอย่างถ้าใครรู้ว่ามีเว็บไซต์ให้โฮสต์สคริปต์โปรดบอกฉัน เห็นได้ชัดว่าตัวตัดการเชื่อมโยงสามารถบันทึกไบต์ได้บางส่วน แต่ฉันไม่ต้องการที่จะลงหลุมกระต่ายอีกต่อไป

from urllib.request import *
import re
print(re.split("</?code>",str(urlopen("https://codegolf.stackexchange.com/q/192715/85978").read()))[1].replace("\\n","\n")[:-1])

12
ฉันค่อนข้างแน่ใจว่าประเด็นเกี่ยวกับช่องโหว่มาตรฐานคือสิ่งที่ใช้แม้ว่าจะไม่ได้กล่าวถึงอย่างชัดเจน
ar4093

1
ใช่ฉันเห็นด้วย; แต่เนื่องจาก op กล่าวว่าmany people, including me and my friend, are interested about how to solve this problem within the fewest charactersฉันคิดว่ามันอาจจะคุ้มค่ากับเสียงหัวเราะที่ดี รูปแบบการเขียนโปรแกรมนันทนาการที่เหมาะกับโพสต์นี้และบางส่วนของเว็บไซต์นี้
jaaq

1
จากนั้นเพียงนำข้อความเป็นอินพุตและใช้print(input())
ar4093

1
ทีนี้ฉันก็จะนับการป้อนข้อมูลต่อไบต์ที่ใช้เนื่องจากมันจะเอาชนะความท้าทายทั้งหมด ฉันแค่อยากจะเล่นกับ 'โปรแกรมเมอร์ไม่ควรทำซ้ำสิ่งที่มีอยู่แล้ว' trope ขออภัยถ้าความคิดของฉันแค่สนุกในสภาพแวดล้อมนี้รบกวนจิตใจคุณฉันไม่ได้ตั้งใจเลย!
jaaq

2
ฉันไม่รู้จักหลาม แต่คุณสามารถสร้างขีดคั่นสองอันได้เท่ากันเนื่องจากการใช้ประทุกครั้งจะเป็นเลขคู่ หากเป็นเช่นนั้นคุณสามารถบันทึกได้ประมาณ 5 ตัวอักษร
Keeta

4

MarioLANG , 3287 3286 3285 ไบต์

ฉันต้องทำสิ่งนี้กับธีม

+++++++++++++++++++++++++++++++++++++++++++++)++++++++++++++++++++++++++++++++)+++++++++++++++++++++++++++++++++++)++++++++++++++++++++++++++++++++++++++++++++++)++++++++++)++++++++++++++++++++++++++++++++++++++++++((((...............))))...........(.(((...............)....)....(.).).(((.............).)..(...).....(..)....).(((.............)...).......(......(..............)...(............)...)).(((................))...........((...............).)...(.(..........).)...(.)).(((...............)..))).(((.......(.................).).(.).(.(..........).).(.).(.)).(((............)....))).......(((......(.............).).(.).(.(..........).).(.).(.)).(((...........))...(.)))...((.))....((.)).(((...)....((..........).)...(.(..........).)...(.)).(((...........))....))..........(((..).....((...........)...(............)...)).(((...........))....))....((((....))))....((.....).(((.............)....(........)....)).(((...........)......(........)......)).((..............................................................)).((.)...(.)......(.).(..)...(.)......(.).(..)...(.)......(.).(..((..................)).)).((...........................................((..................)).)).((.)..(.)....(.)....(..)..(.)....(.)....(..)..(.)....(.)....(.....................)).((..........................................(....).((..........)).)).((.).....(.)......(..).....(.)......(..).....(.)......(.(....).((..........)).)).((..........................................(....).((..........)).)).((.).(.)..(.)....(.)..(..).(.)..(.)....(.)..(..).(.)..(.)....(.)..(.(....).((..........)).)).((..........................................(....)...........
=========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================.

ลองออนไลน์!

มันแย่มากและฉันเสียใจมากลูปอาจมีราคาแพงมาก (อย่างชาญฉลาดไบต์) ใน MarioLANG ถ้าคุณไม่ฉลาดเกี่ยวกับพวกเขาและฉันก็เกือบจะสูญเสียความตั้งใจที่จะมีชีวิตตามเวลาที่ฉันได้มาไกลขนาดนี้ดังนั้นมาริโอจึงวิ่งเป็นเส้นตรงก่อน การตั้งค่า 6 เซลล์หน่วยความจำให้เป็นค่า ASCII ที่ถูกต้องจากนั้นสลับระหว่างเซลล์เหล่านั้นกับเอาต์พุตในลำดับที่ถูกต้อง นี่สามารถลงเล่นกอล์ฟได้ไกลกว่านี้และถ้าคุณเกลียดตัวเองฉันขอแนะนำให้คุณไป

(บันทึกหนึ่งไบต์ด้วยการลบเครื่องหมายเท่ากับสุดท้าย (อักขระพื้น) เนื่องจากมาริโอโจมตีคำสั่งสุดท้ายเมื่อเขาล้มลงโดยไม่มีมันและอีกตัวหนึ่งโดยตระหนักว่าเขาสามารถตีสองคำแนะนำได้ในฤดูใบไม้ร่วง)

5413 ไบต์

+++++>)+++++++++)+++++++)++++++)++++++++)+++++++++)++((((((-[!)+))++)++(()...............)............)).(((...............(....(....).(.))))).(((.............(.(..)...(.....)..(....))))).(((.............(...(.......)......)..(((++>-)))............(...(([!)))))).(((................((...........)).....(((++>-)))..........(.(...).(([!)))))).(((...............(..)).((.......).......(((++>-)))..........(.(.).(.).(([!)))))).(((............(....)).......((......)...(((++>-)))..........(.(.).(.).(([!)))))).(((...........((...))(.))...(((.)))....(((.))).((...(....))..........(.(.).(.).)..........(.(.).(.).)))).(((...........((....)))..........((..(.....))...........(...)............(...)))).(((...........((....)))....(....).....(((....))))).(((.....(((++>-)))........(....(([!)))))).(((...(((++>-)))........(......(([!)))))).((((((+++++++>-))........(([!))......)))).((((((+++>-)).(...).(......).(.).(([!)).)))..................(((.)))).((((((+++++++>-))......(([!)).)))..................(((.)))).((((((+++>-)).(..).(....).(....).(([!(+++++>-)))....((([!))))))).((((((+++++++>-))......(([!)))....(.)))..........(((.)))).((((((+++>-)).(.....).(......).(([!)))....(.)))..........(((.)))).((((((+++++++>-))......(([!)))....(.)))..........(((.)))).((((((+++>-)).(.).(..).(....).(..).(([!)))....(.)))..........(((.)))).((((((+++++++>-))......(([!)))....(...........
====="=======================================================#========================================================================================================================================================================="=======================#==================================================="=========================#====================================================="===========================#====================================================="===========================#=================================================================================================================================================================================================================================================================="====================#=================="======================#===================="==============#======================"==========================#=============================================="============#=========================================="==========================#======"============#====================="============#========================================"========================#============================================"============#========================================"============================#============================================"============#==================.
     !                                                       <                                                                                                                                                                         !                       <                                                   !                         <                                                     !                           <                                                     !                           <                                                                                                                                                                                                                                                                  !                    <                  !                      <                    !              <                      !                          <                                              !            <                                          !                          <      !            <                     !            <                                        !                        <                                            !            <                                        !                            <                                            !            <
     #======================================================="                                                                                                                                                                         #======================="                                                   #========================="                                                     #==========================="                                                     #==========================="                                                                                                                                                                                                                                                                  #===================="                  #======================"                    #=============="                      #=========================="                                              #============"                                          #=========================="      #============"                     #============"                                        #========================"                                            #============"                                        #============================"                                            #============"

ลองออนไลน์!

นี่เป็นพอร์ตของคำตอบแบบสุ่มของผู้ชายโดยใช้ตัวแปลง Dennis's Brainfuck ไปเป็นตัวแปลง MarioLANGทำให้มีการเปลี่ยนแปลงเล็กน้อยเพื่อบันทึกสองสามไบต์ แม้ว่าจะเห็นได้ชัดว่านานกว่า แต่ก็มีคุณสมบัติเพิ่มเติมของภาษาและแสดงให้เห็นว่าภาษาทำงานอย่างไรฉันจึงคิดว่าฉันจะรวมมัน


3

Pyth , 211 ไบต์

Xr9.HC.Z"xÚ]Á	Â@E%Q‚².NŠ[@‚^LI¦°Šñ¾$æ>A¼Ûƒx]Уcô 2Ìÿæ?&°sT	M3«DÊljbÝ/ɬ}Ì ÏÞ‘L¦&›¡%®R$èW+…mö>3Ž`!Wr¢“ê0-ü
{*÷KšjÎÇËáÂÏÒm*üúYÓ^	. Õ¯ŽÎ´Ó,æ†]ó« –ÎRäP¨ïB#ª5Cø®Þš?ÇǸz-vxË"<G6"
 .-*#

ลองออนไลน์!

วิธีการบีบอัด: เนื่องจากมีเพียง 6 ตัวอักษรพื้นที่ขึ้นบรรทัดใหม่เช่นเดียวกับการเปลี่ยนแต่ละเหล่านี้ด้วยตัวอักษรจาก#.-* a-fหลังจากนั้นให้รันความยาวเข้ารหัสสิ่งทั้งหมด ( aaaaaccc-> 5a3cฯลฯ ) จากนั้นบีบอัดโดยใช้ zlib

Xr9.HC.Z"..."<G6"\n .-*#"  # Complete program (last " is implicit)
        "..."              # zlib-compressed string
      .Z                   # decompress
     C                     # read that as a base 256 integer
   .H                      # convert to hex string
 r9                        # run-length decode
X            <G6"\n .-*#"  # translate "abcdef" to "\n .-*#"

สตริงที่บีบอัดคือ

      _0 _1 _2 _3  _4 _5 _6 _7  _8 _9 _a _b  _c _d _e _f

000_  78 da 5d 8d  c1 09 c2 40  10 45 0b 10  25 51 82 b2
001_  2e 4e 01 8a  5b 40 82 0b  5e 13 4c 01  49 07 a6 07
002_  0b b0 8a 05  f1 be 24 e6  3e 41 bc db  83 78 1f 5d
003_  d0 a3 63 f4  20 32 cc ff  1f e6 3f 26  b0 73 11 54
004_  0e 09 4d 08  33 9d ab 44  0c ca c7 89  62 dd 2f c9

005_  ac 7d cc 20  02 cf de 91  4c a6 26 9b  a1 25 ae 52
006_  07 24 8f e8  57 8f 2b 85  6d f6 3e 07  33 8e 60 21
007_  57 72 a2 93  16 ea 30 2d  fc 0a 7b 2a  f7 4b 9a 6a
008_  ce c7 cb e1  c2 cf d2 6d  2a fc fa 59  d3 5e 09 2e

009_  15 20 d5 af  8e ce b4 d3  2c e6 86 0e  5d f3 ab 20
00a_  96 ce 52 17  04 e4 50 a8  ef 42 0c 1e  23 aa 35 43
00b_  f8 ae de 9a  3f c7 0f c7  b8 7a 01 2d  76 78 cb

3

Bash , 486 ไบต์

a=#.#.#O#.#.#
b=#e#O#e#
c=I#w#
S="Tb
T3f#.
R#d2g1f
R2i5S2Q2
UmT$b
T1*6V$a
Q3]5R$a
Pe#Y.Z.*2fO$b
Pf\`1gP2Q2
PfZI[f
R3M3
P5M5
EEA
#e#h#.1e#h#.1e#h#.1wu#
EDwu#
#d#f#f1d#f#f1d#f#fD
EC$c
#g#h1g#h1g#h#$c
EC$c
#.#d#f#d1.#d#f#d1.#d#f#d#$c
ECI;"
p(){
for((i=$[d-$2];i>0;i--)){ printf "$1";}
}
IFS=
while read -r -d '' -n1 c;do
printf -vd %d "'$c"
[ $d -le 47 ]&&printf "$c"||[ $d -le 69 ]&&p '#' 47||[ $d -le 86 ]&&p ' ' 69||[ $d -le 98 ]&&p '*' 86||[ $d -le 109 ]&&p '.' 98||p '-' 109
done<<<$S

ลองออนไลน์!

สตริงเข้ารหัสแบบเข้ารหัสความยาวเริ่มต้น $ S สร้างโดยโปรแกรมที่ไม่ใช่กอล์ฟที่นี่: ลองออนไลน์!

จากนั้นตัวแปร $ a, $ b, $ c ใน $ S จะถูกแทนที่โดยการตรวจสอบด้วยตนเองและจะต้องหลบเลี่ยงเห็บเดียวใน $ S เพื่อให้สามารถใช้ตัวแปรได้


3

Perl, 422 396 370 366 365 ตัวอักษร

print"f c*
f 4#4.#.
d #..3#5.##4.
d 3#7.6#e 3#c 3#
10 b.f #3.#a #3.#
f ##*7#11 2<#.>#a 2<#.>#
c 4#7*6#d 2<#.>#a 2<#.>#
b 3.#3*.4*.*3#4.2<a #3.#>
b 4.a*##5.b 3#c 3#
b 4.4*4 5*4.
d 4#8 4#
b 6#8 6#
3e#
3<#3.#6.#.#>#12-#
2b#12-#
2<#..#4.#4.#>#.2<.#4>.15#
2a#4 #a-#
3<#5.#6.#>4 #a-#
2a#4 #a-#
3<#.#..#4.#..#>4 #a-#
2a#4 c#"=~s/.<(.+?)>/$1x$&/ger=~s/\w+(.)/$1x hex$&/ger;

ความยาวระยะเข้ารหัสใน 2 ขั้นตอน: อักขระต่อเนื่องและรูปแบบต่อเนื่องของอักขระหลาย

ลองออนไลน์!


2

PHP, 608 565 557 ไบต์

ใช้ GMP 5kJvr...สตริงถูกสร้างขึ้นโดยใช้การแทนที่ครั้งแรกเพื่อแปลงต้นฉบับเป็นฐาน5 6 จากนั้น GMP แปลงเป็นฐาน 62

<?=str_replace(range(0,5),str_split("\n-.#* "),gmp_strval(gmp_init('5kJvrGbxP8CrM96cfgUaH1i7H5NT19NW3eSlwbRNO6MzND4omDb8BkvVwnTb1bQtCr6pet0EVt9BQnTuRSwcrL1Gnzs6dMEKAPctFQDrnbXv3eIzlyPYhZpGTwostpxBRJa7bvJvVVgoVjErM9sLKVxa0YkOaOUgMAP6orzz4ZGzb5iQ4qGDDuUOEiKmrcGTHp58srEheAqQSRQE4dOMlauXH4i06DY6tY8gu4maD2BFa68FA7s9sQG9VplFHpecaduYnzLoZgz18xwunIlSkFyIFCUyVMgVxvN7wxtyFZZSAli6DRyV1EobXZtiRa60mYyIZTYL79x190EjhCRAlBM1Lk11FJCeOFkKpAYW8M1hzUpghKA07J31gHpvlkFFKA4dSXvoZwGPbcrGOsmcsi5GAbhB2MIJe9XJGrA7KcSeMfOdxany7HEcesx8oewhtlRHnwxmG8qu8WwA8fjm1S82LMGrq3t',62),6));

ทำงานออนไลน์


2

Python3, 557 ไบต์

เรียกใช้ความยาวที่เข้ารหัสจากนั้นมีสตริงย่อยซ้ำสองสามรายการ (เว้นวรรคจากนั้นเว้นวรรคสาม "#", "-" ล้อมรอบด้วยบล็อกเป็นต้น) ปรับปรุงห้องอย่างแน่นอน

u,v,w,x,y,z="*.-#\n "
t=z*4
s=x+w*18+x
r=t+x+w*10+x+y
q=x+v*3+x+v*6+x+v+x
p=x+v*2+x+v*4+x+v*4+x
o=x+v*5+x+v*6+x
n=x+v+x+v*2+x+v*4+x+v*2+x
m=z*10+x+v+x+v+x
l=z*10+x+v*3+x
print(t*4+u*12+y+z*15+x*4+v*4+x+v+y+z*13+x+v*2+x*3+v*5+x*2+v*4+y+z*13+x*3+v*7+x*6+z*14+x*3+t*3+x*3+y+t*4+v*11+z*5+l*2+y+z*15+x*2+u+x*7+z*7+m*2+y+t*3+x*4+u*7+x*6+z*3+m*2+y+z*11+v*3+x+u*3+v+u*4+v+u+x*3+v*4+l*2+y+z*11+v*4+u*10+x*2+v*5+z*11+x*3+t*3+x*3+y+z*11+v*4+u*4+t+u*5+v*4+y+z*13+x*4+t*2+x*4+y+z*11+x*6+t*2+x*6+y+x*62+y+q*3+s+y+x*42+s+y+p*3+x*20+y+x*42+r+o*3+r+x*42+r+n*3+r+x*42+t+x*11)

Python3, 789 ไบต์

สนุกกับการสร้างตัวเลขสุ่ม ภาพถูกเข้ารหัสความยาวจากนั้นแยกออกเป็นชิ้น ๆ 6 ชิ้นอันแรก (ดัชนีสำหรับสัญลักษณ์ที่จะพิมพ์) ถูกสร้างขึ้นจากเครื่องกำเนิดตัวเลขแบบหลอกเทียม ประการที่สองคือการเข้ารหัส base64 ของตัวเลข 6 ตัว

from random import*
for a,b in zip([24743,129678,6328,31748,115,39591,43781,6080,105810,23721,53737,47694,64624,41381,26725,50462,13767,37213,119081,62980,29054,29054,29054,88178,27000,29054,29054,22423,17293,29054,53737,4887,17293,29054,29054,29054,53737,4887],[4366013200,2167672897,13976478019,12938928579,1328349251,1124376643,18371322817,10754461761,1090785345,1293447436,1241780289,11828203585,1141125187,3240640705,1091310209,11895611659,4479791875,13976490244,6627279364,1106776456,2164547651,2164547651,2164547651,1387008082,1141121089,1141121156,1141121156,1151866180,1157894218,2248429702,1141137477,1151864906,1090785354,2181316674,1141121089,1107562626,1141121092,11889283146]):
    seed(a)
    while b:
        b,i=divmod(b,64)
        print(" \n#-.*"[randrange(6)]*i,end="")

1
แทนที่จะเก็บบรรทัดใหม่ไว้ในตัวแปรคุณสามารถใช้print(line1,line2,...,sep='\n')
ovs

2

C, 1142 1068 1044 ไบต์

มันไม่ดีมาก แต่ฉันทำมัน โดยทั่วไปฉันไปทีละบรรทัดและที่ใดที่หนึ่งฟังก์ชั่นรวมทั้งการเรียกใช้ฟังก์ชันสองครั้งขึ้นไปนั้นสั้นกว่าข้อความต้นฉบับฉันแทนที่ข้อความด้วยฟังก์ชัน

s=32;a=42;h=35;d=46;m=45;p(c,n){while(n--){putchar(c);}}n(){puts("");}c(){printf("#.#.#");}o(){printf("#...#");}z(){p(m,18);p(h,1);n();}x(char*c){printf("%s",c);}y(){p(h,42);x("    #----------#\n");}main(){p(s,15);p(a,12);n();p(s,15);x("####....#.\n");p(s,13);x("#..###.....##....\n");p(s,13);p(h,3);p(d,7);p(h,6);p(s,14);p(h,3);p(s,12);p(h,3);n();p(s,16);p(d,11);p(s,15);o();p(s,10);o();n();p(s,15);p(h,2);p(a,1);p(h,7);p(s,17);c();p(s,10);c();n();p(s,12);p(h,4);p(a,7);p(h,6);p(s,13);c();p(s,10);c();n();p(s,11);x("...#***.****.*###....");p(s,10);o();p(s,10);o();n();p(s,11);x("....**********##.....");p(s,11);p(h,3);p(s,12);p(h,3);n();p(s,11);x("....****    *****....\n");p(s,13);p(h,4);p(s,8);p(h,4);n();p(s,11);p(h,6);p(s,8);p(h,6);n();p(h,62);n();o();x("......#.##...#......#.##...#......#.##");z();p(h,43);z();x("#..#....#....##..#....#....##..#....#....");p(h,21);n();y();x("#.....#......##.....#......##.....#......#    #----------#\n");y();x("#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#\n");p(h,42);p(s,4);p(h,12);n();}

ประหยัดกว่า 99 ไบต์เพียงแค่ใช้งาน printf โดยตรง

ที่บันทึกไว้ 69 ไบต์โดยการเอาintและเป็นโมฆะ specifiers และ#include <stdio> บันทึกอีก 2 ไบต์โดยการประกาศiเป็น global แทนที่จะเป็นfor for loop บันทึกอีก 3 ไบต์เปลี่ยน printf เป็น putchar ในสองแห่ง ลบออกอีก 21 ไบต์ที่มีการเปลี่ยนแปลงการแนะนำโดย @Christian ชะนี: ประกาศตัวแปรลบที่จุดเริ่มต้นการเปลี่ยนแปลงสำหรับวงไป decrementing ขณะที่ห่วงการเปลี่ยนแปลง '\ n' 10 ในn ()ฟังก์ชั่น ที่บันทึกไว้อีก 3 ไบต์เปลี่ยนputchar (10)ที่จะทำให้ ( "")มารยาทของคำตอบนี้

1143 ไบต์

main(){printf("               ************\n               ####....#.\n             #..###.....##....\n             ###.......######              ###            ###\n                ...........               #...#          #...#\n               ##*#######                 #.#.#          #.#.#\n            ####*******######             #.#.#          #.#.#\n           ...#***.****.*###....          #...#          #...#\n           ....**********##.....           ###            ###\n           ....****    *****....\n             ####        ####\n           ######        ######\n##############################################################\n#...#......#.##...#......#.##...#......#.##------------------#\n###########################################------------------#\n#..#....#....##..#....#....##..#....#....#####################\n##########################################    #----------#\n#.....#......##.....#......##.....#......#    #----------#\n##########################################    #----------#\n#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#\n##########################################    ############\n");}

ลองออนไลน์ได้ที่นี่

Ungolfed (ish)

s=32;a=42;h=35;d=46;m=45; // ASCII indices of (space) * # . - symbols.
p(c,n){ // Prints c, n times.
    while(n--){
        putchar(c);}}
n(){ // Prints a newline.
    puts("");}
c(){ // Prints a piece of the coins. Used 4 times.
    printf("#.#.#");}
o(){ // Prints a piece of the coins, and the ground. Used 5 times.
    printf("#...#");}
z(){ // Prints a piece of the ground. Used twice.
    p(m,18);;p(h,1);n();}
x(char*c){ // Wrapper for printf. Used 10 times.
    printf("%s",c);}
y(){ // Prints a piece of the ground. Used twice.
    p(h,42);x("    #----------#\n");}
main(){
    p(s,15);p(a,12);n();
    p(s,15);x("####....#.\n");
    p(s,13);x("#..###.....##....\n");
    p(s,13);p(h,3);p(d,7);p(h,6);p(s,14);p(h,3);p(s,12);p(h,3);n();
    p(s,16);p(d,11);p(s,15);o();p(s,10);o();n();
    p(s,15);p(h,2);p(a,1);p(h,7);p(s,17);c();p(s,10);c();n();
    p(s,12);p(h,4);p(a,7);p(h,6);p(s,13);c();p(s,10);c();n();
    p(s,11);x("...#***.****.*###....");p(s,10);o();p(s,10);o();n();
    p(s,11);x("....**********##.....");p(s,11);p(h,3);p(s,12);p(h,3);n();
    p(s,11);x("....****    *****....\n");
    p(s,13);p(h,4);p(s,8);p(h,4);n();
    p(s,11);p(h,6);p(s,8);p(h,6);n();
    p(h,62);n();
    o();x("......#.##...#......#.##...#......#.##");z();
    p(h,43);z();
    x("#..#....#....##..#....#....##..#....#....");p(h,21);n();
    y();x("#.....#......##.....#......##.....#......#    #----------#\n");
    y();x("#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#\n");
    p(h,42);p(s,4);p(h,12);n();}

คุณสามารถตีกอล์ฟได้มากขึ้นด้วยการเปลี่ยนแปลงง่ายๆ ลบออกs,a,h,d,m,จากจุดเริ่มต้นสิ่งเหล่านั้นจะถูกประกาศเป็นนัยintเมื่อคุณเริ่มต้นมันทันที for(;i++>n;)จะช่วยให้คุณหลีกเลี่ยงการเขียนiอีกครั้งภายในลูป putchar('\n')-> putchar(10)เพื่อโกนหนวดเพิ่มอีกสองสามไบต์ ดูเหมือนว่าคุณมีส่วนเกิน;ในการzทำงานของคุณ
Christian Gibbons

อันที่จริงเราสามารถถ่ายโอนข้อมูลiทั้งหมด แทนที่จะเป็นห่วงให้ทำwhile(n--)
Christian Gibbons

@ChristianGibbons: ขอบคุณ ฉันคิดว่าบันทึกได้ 21 ไบต์ น่าเสียดายที่มันยังมีขนาดเกินสามเท่าของคำตอบ C อื่น ๆ
MichaelS

ย้ายx()ไปด้านบนคุณสามารถc()และ o()เรียกมันเพื่อบันทึกไบต์ x()ตัวเองสามารถใช้เวลาint*เนื่องจากตัวชี้ทั้งหมดมีแนวโน้มที่จะมีขนาดเดียวกันและพิมพ์โดยใช้printf(c)เพื่อบันทึกอีกไม่กี่ไบต์ สองฟังก์ชั่นสามารถทำให้สั้นลงได้บ้าง:n(){p(10,1);}และp(c,n){while(n--)x(&c);}(ถือว่าเป็น endian น้อย) ทุกครั้งที่คุณเรียกใช้ฟังก์ชันที่ไม่มีการโต้แย้งคุณสามารถใช้ฟังก์ชั่นการโทรก่อนหน้านี้เป็นอาร์กิวเมนต์เช่นดังนั้น: ->c();n(); n(c());
Gastropner

สิ่งปลูกสร้างใน @gastropner 987 bytes
ceilingcat

2

Python , 340 378 ไบต์

ฉันทำข้อผิดพลาดในการเข้ารหัสคำตอบเดิมนี่คือการบีบอัด LZW อาจทบทวนคำตอบเดิมของฉันในบางจุด

n=0
for c in'"/AVHF`N.o,>D\\5:{/RD?{C._Q\\%r7,SUOXGh8<}nA^Qddb<=Vb7;L@QPi[XJ65W=p|@<fxMl2+C1gro(x%m"Iz0+B?9d</tYaj.!:6(T#_/5el1Hl{[W&g*A.Oc1*4zf#[{WfLr@Km_jgFkg#1D`&Ik9r\'{M]7c&# X1,U#]=>}JFwVexi7nzbKnS-@-y{IA=l#="EVj=8L`%"9w@zoc9!:q/rT\\OMd]/p^ksiT?P_yj,':n=n*94+ord(c)-32
d=[*' *\n#.-']
s=c=' '
while n:i=n%202;d+=[c+(i>=len(d)and c[0]or d[i][0])];c=d[i];s+=c;n//=202
print(s)

ลองออนไลน์!


1
อันนี้ไม่ถูกต้องคุณหายไป 16 ตัวอักษรในบรรทัดสุดท้ายของการส่งออก
Skillmon

@Skillmon ขอบคุณอัปเดตด้วยคำตอบที่ใช้งานได้
Kyle Gullion

2

Pure JavaScript 419 ไบต์ (ไม่มี lib)

การบีบอัด (1 ขั้นตอน: นับถ่านแต่ละตัวในฐานสิบหกเช่น **********ให้*a2 ขั้นตอน: แปลงสองตัวอักษรเช่น * 1 หรือ # 4 เป็นแม่มดตัวเดียวโดยไม่ต้องใช้รหัส ASCII)

การบีบอัด


2

PowerShell + tar, 265 = 9 + 256 ไบต์

สคริปต์นี้ทำงานกับ Windows และ Linux สคริปต์จะแยกเอาต์พุตจากไฟล์เก็บถาวร tar t(256 ไบต์) tควรอยู่ในไดเรกทอรีเดียวกันเป็นสคริปต์

tar xOf t

ลองออนไลน์!

สคริปต์ powershell เพื่อสร้างไฟล์เก็บถาวร tar t:

(@"
               ************
               ####....#.
             #..###.....##....
             ###.......######              ###            ###
                ...........               #...#          #...#
               ##*#######                 #.#.#          #.#.#
            ####*******######             #.#.#          #.#.#
           ...#***.****.*###....          #...#          #...#
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####
           ######        ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
##########################################    #----------#
#.....#......##.....#......##.....#......#    #----------#
##########################################    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#
##########################################    ############
"@) | Set-Content f -Force
tar zcfo t f

1

Perl พร้อมตัวกรอง: โมดูล sh, 672 ไบต์

มันยาว แต่ก็ยังอ่านไม่ได้ค่อนข้างดังนั้นฉันคิดว่ามันมีคุณสมบัติเป็นคำตอบกอล์ฟ ...

use Filter::sh 'sed "s/S/\" \"/g"';
use Filter::sh 'sed "s/\([0-9]\+\)/x\1 ./g"';
$e="....";$a="#...#$e..#.#";$b="#..#$e#$e#";$c="#$e.#$e..#";$d="#.#..#$e#..#";$f="###";$g="#...#";$h="#.#.#";
print S16"*"12"\n".S16'#'4'.'4"#.\n".S14"#..$f$e.##$e\n".S14$f."."7$f.$f.S13$f.S12"$f\n".S17"."11S14$g.S10"$g\n".S16"##*"."#"7S16$h.S10"$h\n".S13"$f#"."*"7"#"6S12$h.S10"$h\n".S12"...#***.****.*###$e".S9$g.S10"$g\n".S12$e."*"10"##$e.".S10$f.S12"$f\n".S12"$e****    ****$e\n".S14"$f#".S8"$f#\n".S12$f.$f.S8"$f$f\n"."#"62"\n$a$a$a#"."-"18"#\n"."#"43"-"18"#\n$b$b$b"."#"20"\n"."#"42S4"#"."-"10"#\n$c$c$c".S4"#"."-"10"#\n"."#"42S4"#"."-"10"#\n$d$d$d".S4"#"."-"10"#\n"."#"42S4"#"12"\n";

คำอธิบาย: แทนที่กรองSด้วย" "และจำนวนด้วยx(num) .ดังนั้นสำหรับตัวอย่างที่จะกลายเป็นS14 " "x14ใน Perl นี่หมายถึง "print a space 14 times" นอกจากนี้ยังมีบางการบีบอัดคู่มือสำหรับลำดับที่เกิดขึ้นมักจะใช้ตัวแปร-$a$h


เหตุใดจึงใช้คำสั่ง sed เมื่อ Perl สนับสนุนs/regex/replace/gไวยากรณ์อย่างเป็นทางการ?
คะแนน _ ต่ำกว่า

@Score_Under นั่นเป็นเพราะฉันไม่รู้เกี่ยวกับeตัวปรับแต่ง regex ที่ต้องการที่นี่เพื่อรันตัวดำเนินการ x หลังจากการแทนที่ - แต่ตอนนี้ฉันทำ: D
Marijn

1

SOGL V0.12 , 971 ไบต์

ฉันเพียงแค่คัดลอกสตริงทั้งหมดไปยังคอมเพรสเซอร์ ฉันรู้ว่าสตริงไม่บีบอัดมาก

"ξ↔⁴‚σ╔↔æz½↓«ļ;¾⅝↑¶q$+ξρI#↔@≥Β⁄,;∆n2BΡ¾~«n▼og╤iCΘ⌠δZ░∑℮E3č─æ`⅓+↑žS]ķø 'αN²'Q-ω⅞±ž<e⁴Κ№6‼Dfθ∫⅞)i≠Ph╗8B‽`HΔ→┘↓d5∑∫h╤kΖΜY⅞|⌡Σχ¡GΥq«≡─ηe→°~⁹*░κRΝycč□±H⅔b¾℮╗↕Θ*ζΜ9⁵Dæqēυ¦Jn|¼▲ū-⁹¡╗;g²T℮F6u*ε¤3⅜v■└$}Q;▒MKηBqο⁰X╬/Lβ┌I╬č¤¾►'█p¹A0E∑QXγ9§čΡT▒ξ⁾n‚Υ∫æ¤3I-↕æA⁄gTq√šk3>‼μσ¤j:Zk►↓σ¾ņ*∑*╤ΚPn׀æS~3j‚~█fo╔Ε‼■¤υ ρ{¦Oτ◄μ`]ŗS▓κΜ4y║6AΨū0⁽:uMφ^υκ≤&/═;Ο≠№3→⁄Θ±ū<R°ω.cģ²⁴׀Kē~Θ60Εθ^Ε½rA┼═◄⅞║⁶jH²βX8ΓMOšι≤9#$XΚƨ]¶ļA¾⅛x▲Ε|F■¾ƨ(Υ5ΨB[↑√℮⅔α@↓ļ\TB⌠w⅝³βšīηo¤Ω¦∑CTΕņžAh′DαψH?¡ΙO‽HωΕ?○ƦΖ`∙²u   ⁶¾╚iļ⁶Π7⁾ρ℮░;(Ο²9⅔v○⌡⁽¾‽↑┼ξjƧ¬h¼┌Y▲¹ēhμΞ*⁴ā≠cmeeW℮ADC═¬[9išE⅛~№k⅔№lķ¼⅛∆$qΒR┐Γ¦⅔}\Φ‼ΩxøG⁾ΓOŗ⅟zψ;¹]m║░↔═;↑τΩÆΘχW»G∞ΧQT_L  Δ   nē‼№>ζƧρΕ↔Λλ↑EīšÆ↑gWIμū█⁹└Ιf⌡EΘ⁶cυ═<⅜LjΤlτ⅞⅟ΟB╚@░⁽ič-|dΘž⁽Υ■tPp⁵θ╝│⅜v+M8³Τ╝ι░╬¶ū¾oī⅜o╥\VΨΖ6±≡∆hl?ΦģīX╚æ→#%C\aG‛Ι⌠?ΞJ⁄═⁴v°±∫⁸dy►īι׀ģ&χeģ ~xš/L»ψ(Ξ]δ‛ģæ─╗ƨ╚a*‰■Υ□L$.Λ└≈′9ν‚v░¦+ΛξƧΟļBKγ÷Π*IΝ‚ρTGΜ-^gΗ?Æ[ā╤⅓c&►δæ↓°√>R%┘⁵ī╥$J▲kψβ▲Χ╝0ψγαp¾‼~γ!ι⅔_γψ⁄⅝┼═ģÆ⁴A»┼Jλ∆≤š'ΣRΡΩd4¬hAVb¬zbH⁸ωθyV»⁹№ξ╤*°Kν-G[═ζ∙εY↔⁾Xp⁷χ<⁹≈≈┐>°(Æ#¼i┌γδ∫+ευļDET⌡∆═ν<xzΘ⁰⌡hS»ΚKļ⁰G*mε▲GΖλDΗ_Ηx╝⁴ΘλLσ╝ψB~χ[Ν#ΗhΡ\λ2Y∙ψ¤i⌠}λ▒│αξqzP⅜¶²‘

ลองที่นี่!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.