แสดง“ สุขสันต์วันอีสเตอร์!”


11

งานของคุณคือการพิมพ์ศิลปะ ASCII ต่อไปนี้:

 _     _                            _______                           _ 
| |   | |                          (_______)          _              | |
| |__ | | ____ ____  ____  _   _    _____   ____  ___| |_  ____  ____| |
|  __)| |/ _  |  _ \|  _ \| | | |  |  ___) / _  |/___)  _)/ _  )/ ___)_|
| |   | ( ( | | | | | | | | |_| |  | |____( ( | |___ | |_( (/ /| |    _ 
|_|   |_|\_||_| ||_/| ||_/ \__  |  |_______)_||_(___/ \___)____)_|   |_|
              |_|   |_|   (____/

โปรดจำไว้ว่านี่คือดังนั้นโค้ดที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ โชคดี.


2
@FryAmTheEggman ค่อนข้างแตกต่างจาก Rickroll ที่ซ้ำกันน่าจะเป็น ใช้สัญลักษณ์เพียงไม่กี่ตัวเท่านั้น|()/\_ซึ่งจะนำไปสู่รูปแบบการบีบอัดที่แตกต่างอย่างสิ้นเชิง เรามีความท้าทายศิลปะ ASCII ที่คล้ายกันมาก่อน แต่ฉันต้องการเห็นคำถามนี้วิ่งเพื่อดูว่าใครใช้ประโยชน์จากรูปทรงเรขาคณิตหรือไม่ ในทางกลับกันมันไม่ได้โดดเด่นอย่างมหาศาลและคุณพูดถูกเราไม่ต้องการแท็กอีสเตอร์
ระดับ River St

1
@FryAmTheEggman ทางออกที่ดีที่สุดให้กับKolmogorov ซับซ้อนขึ้นอย่างมากเกี่ยวกับโครงสร้างของการส่งออก นี่ไม่ใช่ข้อความดังนั้นมันจึงไม่ใช่การล่อลวง
lirtosiast

7
@lirtosiast ชุดตัวละครที่ จำกัด อาจมีความสำคัญ แต่ฉันรู้สึกว่ามันเกือบจะถูกครอบงำด้วยเทคนิคแบบเดียวกับในคำถามตามข้อความ นั่นเป็นเพียงความคิดเห็นของฉันชุมชนได้ตัดสินใจว่ามุมมองของเราในการบังคับใช้
FryAmTheEggman

4
สำเนาซ้ำที่เป็นไปได้ของMinecraft Mirrored
Blue

1
สิ่งนี้แตกต่างเนื่องจากไม่มีอินพุตดังนั้นจึงไม่จำเป็นต้องรับอินพุตและวิเคราะห์
thepiercingarrow

คำตอบ:


10

Bubblegum, 130 ไบต์

0000000: 758f b579 0530 18c4 7a4f a1d2 7fe5 8102  u..y.0..zO......
0000010: 5ae4 760f 5de8 91ee b3cc 8400 f523 2c3c  Z.v.]........#,<
0000020: 4656 0850 3f60 5b86 5fe4 8290 15a2 84a0  FV.P?`[._.......
0000030: 5a61 4d0b b64f 2b35 c476 eb1e 844e c841  ZaM..O+5.v...N.A
0000040: 08c8 731d 1a02 ead0 1547 1d70 beba 9fd6  ..s......G.p....
0000050: 31bf 5fdb 6c72 1d7b 1051 ed8a a884 7c76  1._.lr.{.Q....|v
0000060: 0fa7 db91 1503 c43c 9b18 124f cdb3 4220  .......<...O..B 
0000070: 9631 716b a71c 3bd6 ed8b 0b62 7ebd 55cf  .1qk..;....b~.U.
0000080: 7a07                                     z.

ลองออนไลน์

zopfli --deflate --i10000บีบอัดโดยใช้


ไม่ใช่ 588 ไบต์ใช่ไหม
thepiercingarrow

15
@ MarkWright สิ่งที่ quartata โพสต์คือเลขฐานสิบหกของรหัสที่แท้จริง
Sp3000

10

JavaScript (ES6), 377 373 360 359 345 ไบต์

ขอบคุณ @Neil สำหรับการประหยัดหนึ่งไบต์และเพื่อ @ edc65 สำหรับอีก 14!

คิดว่าฉันจะให้มันยิง บีบอัดรูปแบบการทำซ้ำทั่วไปในข้อความ

_____ (5 ขีดล่าง) ถูกเก็บเป็น _5

      (5 ช่องว่าง) ถูกเก็บเป็น  5

 | | | | |(5 ของ |รูปแบบ) ถูกเก็บเป็น~5


console.log(` _ 5_ 28_7 27_
|~ 2~2 26(_7) 10_ 13~2
|~_2~2 _4 _4 2_4 2_ 3_ 4_5 3_4 2_3|~_ 2_4 2_4|~
| 2_2)|~/ _ ~ 2_ \\| 2_ \\|~3 ~ 2_3) / _ ~/_3) 2_)/ _ 2)/ _3)_|
|~ 2~ ( (~9_|~ ~2_4( (~2_3~2_( (/ /|~ 4_
|_| 2~_|\\_|2_|~|_/|~|_/ \\_2 ~ ~_7)_|2_(_3/ \\_3)_4)_| 2~_|
 13~_| 2~_| 3(_4/`.replace(/(.)(\d+)/g,(_,a,b)=>a.repeat(b)).replace(/~/g,' |'))

หมายเหตุ =>ES6
CalculatorFeline

ดูเหมือนว่าไบต์อาจถูกบันทึกไว้โดย RLEing _s
CalculatorFeline

@CatsAreFluffy คุณหมายถึงอะไร มันบีบอัดวิ่ง_ที่มี_ตามมาด้วยวิธีการหลายที่มีอยู่ในการทำงาน
jrich

โอ๊ะโอฉันยังอยู่ในรุ่น 377 ไบต์
CalculatorFeline

~1หรือ_2ดูเหมือนว่าแทบจะไม่คุ้มค่า (ทำไมไม่ใช้|2เช่น)
Neil

8

BinaryFuck , 565 378 ไบต์

โดยทั่วไปจะเก็บอักขระที่ใช้ในอาเรย์แล้วนำทางไปยังอาเรย์แล้วพิมพ์ตามนั้น ปัจจุบันค่อนข้างยาวจะสั้นลง

1000010000000000000000110011110001010010000011011111010010110001011011000000010010111011001111011110010010010000010000010000000000000010000010000000000010000010000000000011011011011011011011011011001111010010000000000110001010000000000000000010000000000011011111010010001010001001001001010010001010000000000000000000000000000010001001001001010000000000000000000000000000000011011011011100010100011100100100100100010100011100100100100100100100100100100100100100100100100100100100100100100100100100100100100010100100100100100100100011100100100100100100100100100100100100100100100100100100100100100100100100100100100010100011100010010010010100011011011011011100010100011100010100100100011100010100011100010100100100100100100100100100100100100100100100100100100100100100100100100100100011011100010010010100100100100100100100010100011011100100100100100100100100100100010100011100100100100100100100100100100100100100100011100010100011100010010010010010100011011011011011100010100011100010010100100011100011100010100011100010100010100100100100011100010100100100100011100100010100100100100011100100010100011100100100010100011100100100100010100100100100100011100100100010100100100100011100100010100100100011011100010100011100010010100011100100010100100100100011100100010100100100100011011100010100011100010010010010010100011011011011011100010100100010100100010100011011011100010100011100011011100010010010100010100011100100011100010100100010100011100010010010100011011011011100010100100010100011100010010010100011011011011100010100011100010100011100010100011100010100100011100010100100010100100100010100011011100011011011100010010010100010100011100100011100011011100010010010010100100100010100011011100100010100010100011011011011011100010010010100010100011100100010010100011011011011011100010010010100010100100100010100011100011011100010010010010010100011011011011011100010100011100010100100100011100010100011011100010010100011011100010010100011100010100011100010100011100010100011100010100011100010100011100010100011100010100011100010100011100010010100011011100010100011100010100100011100010100011100010010100100100100011011011100010010100011011100010010100011100010100011100010010100100100011100011100010100011100010010100011011011100010010100011011100011100010010010100011011011100010010100010100011100010100100100100010100011100010010010010100011011011011011100010010100011011100010100100100011100010010100011011100010010010010100011011100011011100100010010100011011100010100011100100010010100011011011011100010010100010100011100100010010100011011011011100010010010100010010010100011011100100011100100011100010100100011100010010100100100100100100100010100011100011011100100010010100011011011100010010010100100100011011011011100010010010100010010010100011011100100100010100011100100100100010100011100011011100010100100100011100010010100011011100010010010010010100011011011011100100100100100100100100100100100100100100011100010010100011011100010100100100011100010010100011011100010100100100011011100010010010100100100100011011011011100

นี่คือรหัส ungolfed:

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

แก้ไข: โดยการจัดเรียงลำดับอักขระในเซลล์ฉันบันทึก 186 ไบต์!


8
นั่นไม่ใช่วิธีการนับจำนวนไบต์ หากคุณไม่สามารถส่งลำดับไบต์ที่แน่นอนไปยังล่ามคุณจะไม่สามารถอ้างสิทธิ์จำนวนไบต์นั้นเป็นจำนวนไบต์ของคุณ
Doorknob

1
หากมีเป็น BF-ล่ามซึ่งจะใช้เวลาใน 3 บิต / ถ่าน โปรดเพิ่มลิงค์ไปยังล่ามและ hexdump / pastebin ของรหัสที่เข้ารหัสหากคุณต้องการอ้างสิทธิ์ 565 ไบต์
Downgoat

2
ใช่มี 3 บิต brainfuck ล่าม เพิ่มลิงก์ไปยังสิ่งนี้ในคำตอบของคุณพร้อมกับการแสดงเลขฐานสิบหก / ไบนารีของรหัสของคุณ ภาษานั้นจะไม่เบรนกันอีกต่อไปดังนั้นคุณต้องระบุ "CompressedFuck" ในส่วนหัว ฉันขอแนะนำให้รักษาตามที่เป็นอยู่เมื่อเห็นคนที่มีสมองไม่คาดหวังว่ามันจะสั้นมาก
Downgoat

1
ดูเหมือนว่าโปรแกรม BinaryFuck ที่ไม่ถูกต้อง 1มันไม่ได้เริ่มต้นด้วย โปรดระบุลิงก์ไปยังล่ามและฐานสิบหกของซอร์สโค้ดเพื่อให้ผลลัพธ์ของคุณสามารถทำซ้ำได้
Dennis

2
หากคุณจะอ้างสิทธิ์ 3 บิตต่อการเรียนการสอนตาม Binaryfuck คุณต้องโพสต์ซอร์สโค้ด Binaryfuck (อาจเป็นฐานสิบหกหรือเข้ารหัส 64 ฐาน) และคำนวณไบต์ตามนั้น ตามที่กล่าวมาการส่งนี้เป็นการส่งความคิดที่มีขนาด 1,012 ไบต์โดยมี 3 รายการที่ไม่เกี่ยวข้อง (บรรทัดใหม่)
Mego

6

JavaScript (ES6), 380 ไบต์

เพื่อความสมบูรณ์นี่คือความพยายามของฉันที่จะใช้วิธีการบีบอัดที่แตกต่างกันถึงแม้ว่าจะปรากฎว่ามันไม่ได้มีประสิทธิภาพเท่ากับการเข้ารหัสการรันความยาว แต่ละหลักระบุว่าอักขระ N สุดท้ายที่สร้างขึ้นแล้วถูกทำซ้ำ ตัวเลขที่ตามมาสามารถทำซ้ำตัวละครซ้ำแล้วเช่นกลายเป็น| 23 | | |ฉันแค่หวังว่าฉันจะบีบอัดตัวละครสามตัว

f=(s=` _  26  2479__23   2499_ 
| 2  6  2379(__23)   25_  237|2
| |__ |2 __25  __2  _ 4   ___2   __2  ___| |_  ___6_| |
|  __)| |/ _  |  _ \\6| 24 |  ___) / _  |/___)  _)/ _  )/ ___)_|
| 2  | (2 |248 |_| 23|__2( 2| |___ |2_( (/ /| 2   _ 
|_|   |_|\\_||_| ||_/6 \\__  |3__23)_||_(___/ \\___)_5|   |_|
  237|_|6   (__2/`,r=s.replace(/(.*?)(\d)/,(_,p,n)=>p+p.slice(-n)))=>r==s?r:f(r)

o.textContent = f()
<pre id=o></pre>


6

C, 517 427 407 ไบต์

  • บันทึกไม่กี่ไบต์ด้วย @ceilingcat
c,i;main(m){for(char*s=" _ 4_ 999_6 998_ 1\n|B 2|B 997(_6) 9_ 94|B \n| |_1C _3 _3 1_3 1_ 2_ 3_4 2_3 1_2|B_ 1_3 1_3|B \n| 1_1)|B/ _ 1\\| 1_ \\| 1_E 1| 1_2) / _ 1|/_2) 1_)/ _ 1)/ _2)_| \n|B 2| ( (J_|B 1|B_3( (C_2C_( (/ /|B 3_ 1\n|_| 2|_|\\_||_|B1_/|B1_/ \\_1 1| 1|_6)_|1_(_2/ \\_2)_3)_| 2|_| \n 94|_| 2|_| 2(_3/\n";*s;s++)for(i=isdigit(*s)?c=m,*s-48:isalpha(*s)?c=0,*s-65:(c=*s,1);i--;)printf(c?m=c,&c:" |");}

ลองใช้Ungolfed

#include <stdio.h>
#include <stdint.h>

char m = 0;

void g(char c, int i)
{
    while(i--) c ? m=putchar(c) : printf(" |");
}

void p(char* s)
{
    while(*s)
        isdigit(*s) // golfed if-else-if
        ? g(m,*s-48)
        : isalpha(*s)
          ? g(0,*s-65)
          : g(*s,1)
        ,
        s++;
}

int main()
{
    p(" _ 4_ 999_6 998_ 1\n|B 2|B 997(_6) 9_ 94|B \n| |_1C _3 _3 1_3 1_ 2_ 3_4 2_3 1_2|B_ 1_3 1_3|B \n| 1_1)|B/ _ 1\\| 1_ \\| 1_E 1| 1_2) / _ 1|/_2) 1_)/ _ 1)/ _2)_| \n|B 2| ( (J_|B 1|B_3( (C_2C_( (/ /|B 3_ 1\n|_| 2|_|\\_||_|B1_/|B1_/ \\_1 1| 1|_6)_|1_(_2/ \\_2)_3)_| 2|_| \n 94|_| 2|_| 2(_3/\n");
    return 0;
}

5

จาวาสคริปต์, 297 ไบต์

console.log(` 29 288999002889 3 
19 18899 500_)82891
1__ 1 0_ 02022 290_2 02012020_1
|3_)162|3 \\|3 \\1 19|90) 62|/0)3)62)60)_|
19 |55 1 1 1 1 71910_(5 10 1_(56/193 
7|4\\_|717/176\\_2|9|00_)_|7(06\\0)0_)_|4
8 44950_/`.replace(/\d/g,n=>`___,| |,_  ,  _,   |_|, (,/ ,|_,          ,  `.split`,`[n]))

การเข้ารหัสอย่างง่ายของสตริงย่อยทั่วไปสิบ (เท่าที่ฉันสามารถบอกได้) พวกเขาไม่ได้อยู่ในลำดับเพราะทับซ้อน; การเข้ารหัสของฉัน (ด้านล่าง) ความต้องการที่จะเห็นเช่น'_ 'และก่อนที่จะ' _'' '

(s,a,t=s)=>a.map((t,i)=>s=s.split(t).join(i))&&[s,(b=>{b=new Map;for(i=0;i<s.length;i++)for(j=0;j<i;j++)b.set(s.slice(j,i),s.length-s.split(s.slice(j,i)).join().length-i+j-1);return[for(x of b)if(x[1]>0&&!/\d/.test(x[0]))x].sort(([a,b],[c,d])=>b-d)})(),t.length-(s+' '+a).length]

สิ่งนี้ใช้สตริงและอาร์เรย์ของสตริงย่อยเพื่อเข้ารหัสและส่งกลับ a) สตริงที่เข้ารหัส b) รายการของการประหยัดครั้งต่อไปที่อาจเกิดขึ้น c) จำนวนไบต์ที่บันทึกไว้จนถึงปัจจุบัน


5

𝔼𝕊𝕄𝕚𝕟, 72 ตัวอักษร / 209 ไบต์

`Эć훼쎧漤詼媰਀㻆僚픈耊Ⓢኍ⋱쬝ᇑ덆䖇䂊՛樥첾㨭쯠ཁ톇:덱螟醮䖉⥊覂削ꇉ漈涹႘챘ඕ꼳⁒᭷Ừ䒕鶀놜㆝〢ﱱꎀ쎴䋈㗂䅉Ⴄቀ쳵菨ⶩ∉툲耀

Try it here (Firefox only).

อย่างน้อยจำนวน char นั้นยอดเยี่ยม แต่เราไม่สามารถใช้หน้ารหัสที่กำหนดเองได้ มันเป็นแค่ LZString-decompression ฉันกำลังทำงานในโซลูชันอื่น - เพิ่มเติมในภายหลัง


5

Perl 5, 286 ไบต์

perl -M5.01 happy.plอยู่ที่ไหนhappy.pl:

$_='u5u28 7_27u
~~x~~25 (7_)10u7x~~
~p_ ~~4_ 4_x4_x_3u4 5_3 4_x3_~px4_x4_~~
~u_)~|/ux~u \~u \4~ ~ 3_) /ux|/3_)x_)/ux)/ 3_)_|
~~x~( ( 8~p~~ ~|4-( ( ~p__ ~p( (/ /~~3u
p~xp|\_|p~|p/~|p/ \__x~ p6_)_|p(3_/ \3_)4_)_~xp|
14 p~xp~x(4_/';s/u/ _/g;s/\d+(.)/$1x$&/ge;s/x/  /g;s/~/| /g;s/p/|_/g;say

ขอบคุณDom Hastings (ในความคิดเห็นในที่นี้) สำหรับความคิดที่ช่วยฉันสองไบต์และนำไปสู่ความคิดของฉันที่ช่วยอีกสี่คน


แน่นอนคุณควรใช้Lเป็นชวเลขสำหรับ|_;-)
Neil

3

Python 2, 343 328 316 ไบต์

วิธีนี้ไม่ใช้ฟังก์ชั่นการแตกไฟล์หรือการนำเข้าอื่น ๆ

o=""
for i in range(250):j=ord(")*I*yyQZyyI*(!+9!+yyA,Z-q*y9!+(!+2)!!B)B1B1*9*AJ9B1:!+*1B1B!+(+12-!+/)*1+1*).+1*).!!!+1+1:-)/)*1+/:-1*-/)*1-/):-*+(!+9!,),)!!!!!!!!+*!+1!+B,),)!+:)!+*,),/)/!+A*(+*+9+*+.*3*!3*/!3*/).21+1+Z-*3*,:/).:-B-*+9+*+(y9+*+9+*+9,B/(".replace("!","+)")[i])-40;o+="\n _|()\/"[j&7]*(j/8+1)
print o

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

DATA=(")*I*yyQZyyI*("
"!+9!+yyA,Z-q*y9!+("
"!+2)!!B)B1B1*9*AJ9B1:!+*1B1B!+("
"+12-!+/)*1+1*).+1*).!!!+1+1:-)/)*1+/:-1*-/)*1-/):-*+("
"!+9!,),)!!!!!!!!+*!+1!+B,),)!+:)!+*,),/)/!+A*("
"+*+9+*+.*3*!3*/!3*/).21+1+Z-*3*,:/).:-B-*+9+*+("
"y9+*+9+*+9,B/(").replace("!","+)")
SIZE=250
o=""
for i in range(SIZE):
 j=ord(DATA[i])-40
 o+="\n _|()\/"[j&7]*(j/8+1)
print o

ใช้การเข้ารหัสความยาวรันที่มี 3 บิตสำหรับสัญลักษณ์จากชุด "\ n _ | () /" ส่วนที่เหลือของไบต์คือความยาว แต่ฉันจำกัดความยาวไว้ที่ 10 และจัดการมันเพื่อให้ผลลัพธ์เป็นอักขระที่พิมพ์ได้ที่ถูกต้องในสตริงไพ ธ อนโดยไม่มีการหลบหนีใด ๆ

การแทนที่สตริงที่สอดคล้องกับ "|" ด้วยอักขระตัวเดียวในข้อมูลที่เข้ารหัสจะช่วยประหยัดอีกสองสามไบต์

ฉันลบช่องว่างต่อท้ายบนบรรทัดที่ 1 และ 5 ซึ่งอาจทำให้กฎงอเล็กน้อย แต่ดูเหมือนว่าใช้งานได้จริง

โปรแกรมนี้สร้างข้อมูลที่รวบรวม:

message="""
 _     _                            _______                           _
| |   | |                          (_______)          _              | |
| |__ | | ____ ____  ____  _   _    _____   ____  ___| |_  ____  ____| |
|  __)| |/ _  |  _ \|  _ \| | | |  |  ___) / _  |/___)  _)/ _  )/ ___)_|
| |   | ( ( | | | | | | | | |_| |  | |____( ( | |___ | |_( (/ /| |    _
|_|   |_|\_||_| ||_/| ||_/ \__  |  |_______)_||_(___/ \___)____)_|   |_|
              |_|   |_|   (____/"""[1:]
size=len(message)
symbols="\n _|()\/"
i=0
encoded=""
while i<size:
    count=0
    while count<10 and i+count+1<size and message[i+count+1]==message[i]:
        count+=1
    n = symbols.find(message[i]) | count<<3
    encoded+=chr(n+40)
    i+=count+1
encoded_lines = encoded.replace("+)","!").split(chr(40))
for line in encoded_lines:
    print line+chr(40)
print len(encoded)

สวัสดีและยินดีต้อนรับสู่ PPCG! โพสต์ยอดเยี่ยม!
NoOneIsHere

@NoOneWasLiterallyEverHereEver ไม่ได้ว่ามันเป็นโพสต์แรกของพวกเขาหรืออะไร แต่แน่ใจ :)
แมว

2

Python 2, 159 ไบต์

แหล่งที่มานี้ประกอบด้วยอักขระที่ไม่สามารถพิมพ์ได้ดังนั้นจึงแสดงเป็น hexdump ที่สามารถถอดรหัสxxd -rได้

00000000: efbb bf70 7269 6e74 2278 017d 8fb5 7540  ...print"x.}..u@
00000010: 3114 c5fa 3f85 4abb f240 012d a2dd 432f  1...?.J..@.-..C/
00000020: 4cba c732 1302 20ff e0c0 dfc8 1501 e33f  L..2.. ........?
00000030: 580e 9b77 e40b d115 2911 aa23 1c33 05a7  X..w....)..#.3..
00000040: cf54 6ae4 74c7 7310 baa3 8310 c86d 8c27  .Tj.t.s......m.'
00000050: 04ea 6656 9c79 9bfb a5fb 6cdd f6fe b5c5  ..fV.y....l.....
00000060: a2ef 3182 4875 56a4 123d 770f 2702 902b  ..1.HuV..=w.'..+
00000070: 03b2 5bcb 28cf 985b 8520 876d b974 a6dc  ..[.(..[. .m.t..
00000080: be28 20bb f842 f6ee a57a 1e01 c1a2 733e  .( ..B...z....s>
00000090: 222e 6465 636f 6465 2827 7a69 7027 29    ".decode('zip')

2

แร็กเก็ต, 367 364 ไบต์

(require file/gunzip net/base64)((λ(o)(gunzip-through-ports(open-input-bytes(base64-decode #"H4sIAOhN/lYAA31QwQ3EMAj7dwqezYuFInkRhj+MoWor9UBCmGBDMBhN8cMg+9dhR1hkovhhZwutO/FhSadQzqJQDdXkjsOYfa5Hkm4QEsp0ZeYkEdmeKK8i91GHazesgoyJEdfXzvR4O1ooOLY7oA8QunnfhDdCCSE2oogBV7QN7RhzI3bwYPWUUDXRj9fVpj439h/OlCKU1gEAAA=="))o)(displayln(get-output-string o)))(open-output-bytes))

Ungolfed

(require file/gunzip net/base64)
((λ (o)
   (gunzip-through-ports
    (open-input-bytes
     (base64-decode
      #"H4sIAOhN/lYAA31QwQ3EMAj7dwqezYuFInkRhj+MoWor9UBCmGBDMBhN8cMg+9dhR1hkovhhZwutO/FhSadQzqJQDdXkjsOYfa5Hkm4QEsp0ZeYkEdmeKK8i91GHazesgoyJEdfXzvR4O1ooOLY7oA8QunnfhDdCCSE2oogBV7QN7RhzI3bwYPWUUDXRj9fVpj439h/OlCKU1gEAAA=="))
    o)
   (displayln (get-output-string o)))
 (open-output-bytes))

ตามออกผมท้าทายที่คล้ายกันตอบ


2

/// , 282 279 ไบต์

การปรับปรุง: ฉันสังเกตเห็นว่ามี//คำสั่งการแทนที่มากเกินไปดังนั้นฉันจึงตัดสินใจบีบอัดคำสั่งเหล่านั้นด้วย (ไปm) ซึ่งช่วยฉัน 3 ไบต์

/m/\/\///l/ _mk/|amj/b_mi/\\\m/h/|cmg/ddmf/ccme/bbmd/aamc/ |mb/__ma/  /ldlgggdejgggal 
hafggga(ej)ga_gdah
hbf e eaea_alde_a eajh_aeaeh
kb)hilak_ \\k_ \\|fcakj) ila|ij)a_)ila)i j)_|
hac ( (ffffc_hahe( (fjf_( (i ihd_ 
|_kc_|\\_||_h|_ih|_i \\bak|ej)_||_(ji \\j)e)_kc_|
gda|_kc_k (ei

บีบอัดสตริงย่อยที่พบบ่อยซ้ำ ๆ

รุ่นที่สิบสาม, 282 ไบต์

/l/ _//k/|a//j/b_//i/\\\///h/|c//g/dd//f/cc//e/bb//d/aa//c/ |//b/__//a/  /ldlgggdejgggal 
hafggga(ej)ga_gdah
hbf e eaea_alde_a eajh_aeaeh
kb)hilak_ \\k_ \\|fcakj) ila|ij)a_)ila)i j)_|
hac ( (ffffc_hahe( (fjf_( (i ihd_ 
|_kc_|\\_||_h|_ih|_i \\bak|ej)_||_(ji \\j)e)_kc_|
gda|_kc_k (ei

ลองออนไลน์!

รุ่นแรก, 486 ไบต์

ไม่มีการบีบอัด หนีและ/\

 _     _                            _______                           _ 
| |   | |                          (_______)          _              | |
| |__ | | ____ ____  ____  _   _    _____   ____  ___| |_  ____  ____| |
|  __)| |\/ _  |  _ \\|  _ \\| | | |  |  ___) \/ _  |\/___)  _)\/ _  )\/ ___)_|
| |   | ( ( | | | | | | | | |_| |  | |____( ( | |___ | |_( (\/ \/| |    _ 
|_|   |_|\\_||_| ||_\/| ||_\/ \\__  |  |_______)_||_(___\/ \\___)____)_|   |_|
              |_|   |_|   (____\/

ลองออนไลน์!

รุ่นที่สอง 402 ไบต์

aบีบอัดสองช่องว่างที่จะ /a/ /หมายถึง "แทนที่เกิดขึ้นทั้งหมดของaสองช่องว่าง"

/a/  / _aa _aaaaaaaaaaaaaa_______aaaaaaaaaaaaa _ 
| |a | |aaaaaaaaaaaaa(_______)aaaaa_aaaaaaa| |
| |__ | | ____ ____a____a_a _aa_____a ____a___| |_a____a____| |
|a__)| |\/ _a|a_ \\|a_ \\| | | |a|a___) \/ _a|\/___)a_)\/ _a)\/ ___)_|
| |a | ( ( | | | | | | | | |_| |a| |____( ( | |___ | |_( (\/ \/| |aa_ 
|_|a |_|\\_||_| ||_\/| ||_\/ \\__a|a|_______)_||_(___\/ \\___)____)_|a |_|
aaaaaaa|_|a |_|a (____\/

ลองออนไลน์!

รุ่นที่สาม, 369 ไบต์

อัดไป__ ที่หมายถึงการเริ่มต้น "แทนที่เกิดขึ้นทั้งหมดของการ"b/b/__/b__

/b/__//a/  / _aa _aaaaaaaaaaaaaabbb_aaaaaaaaaaaaa _ 
| |a | |aaaaaaaaaaaaa(bbb_)aaaaa_aaaaaaa| |
| |b | | bb bbabba_a _aabb_a bbab_| |_abbabb| |
|ab)| |\/ _a|a_ \\|a_ \\| | | |a|ab_) \/ _a|\/b_)a_)\/ _a)\/ b_)_|
| |a | ( ( | | | | | | | | |_| |a| |bb( ( | |b_ | |_( (\/ \/| |aa_ 
|_|a |_|\\_||_| ||_\/| ||_\/ \\ba|a|bbb_)_||_(b_\/ \\b_)bb)_|a |_|
aaaaaaa|_|a |_|a (bb\/

ลองออนไลน์!

รุ่นที่สี่ 339 ไบต์

อัดไป | ที่หมายถึงการเริ่มต้น "แทนที่เกิดขึ้นทั้งหมดของการ"c/c/ |/c|

/c/ |//b/__//a/  / _aa _aaaaaaaaaaaaaabbb_aaaaaaaaaaaaa _ 
|caccaaaaaaaaaaaaa(bbb_)aaaaa_aaaaaaa|c
|cbcc bb bbabba_a _aabb_a bbab_|c_abbabb|c
|ab)|c\/ _a|a_ \\|a_ \\|ccca|ab_) \/ _a|\/b_)a_)\/ _a)\/ b_)_|
|cac ( (ccccccccc_|ca|cbb( (ccb_cc_( (\/ \/|caa_ 
|_|ac_|\\_||_|c|_\/|c|_\/ \\ba|a|bbb_)_||_(b_\/ \\b_)bb)_|ac_|
aaaaaaa|_|ac_|a (bb\/

ลองออนไลน์!

ส่วนที่เหลือของกฎการบีบอัด

ดังนั้นรายการกฎการบีบอัด:

  • บีบอัดสองช่องว่างเพื่อ aบีบอัดสองช่องว่างที่จะ
  • บีบอัด__เพื่อbเพื่อ
  • บีบอัด |เพื่อcเพื่อ
  • บีบอัดaaเพื่อdเพื่อ
  • บีบอัดbbเพื่อeเพื่อ
  • บีบอัดccเพื่อfเพื่อ
  • บีบอัดddเพื่อgเพื่อ
  • บีบอัด|cเพื่อhเพื่อ
  • การบีบอัดเพื่อ\/ iทั้ง\และ/ในกฎระเบียบที่มีการหลบหนีต่อไป
  • บีบอัดb_เพื่อjเพื่อ
  • บีบอัด|aเพื่อkเพื่อ
  • บีบอัด _เพื่อlเพื่อ
  • การบีบอัดเพื่อ//m

อย่างที่คุณเห็นมีกฎการบีบอัดซ้อนกันอยู่ ตัวอย่างเช่นgเข้ารหัสddที่เข้ารหัสaaaaที่เข้ารหัส 8 ช่องว่าง


หากคุณต้องการที่จะฟัง แต่เมาไม่มีแอลกอฮอล์ให้ลองออกเสียงสิ่งเหล่านี้ พิสูจน์แล้วว่าทำงานกับพ่อแม่
cat

2

แม่ของเธอ (ไม่แข่งขัน), 331 ไบต์

ถอดรหัสสตริงและคลายโดยใช้ Jelly compressor

'IF8KfCgpL1z/AQAAAQAAAAAAAAAAAAAAAAAAEREREAAAAAAAAAAAAAAAAAAQIwMAAwMAAAAAAAAAAAAAAAAAQREREVAAAAAAAQAAAAAAAAAwMjAxEDAwEREBERABERABAAEAABEREAAREQAREwMQAREQARETAyMAEVMDYBADABBzABBzAwMDADABEVBgEANhEVABVgEAVgERUTIwMAAwQEAwMDAwMDAwMDEwMAMDERFAQDAxEQMDFARgYwMAABAjEwADE3EzEwMxYwMxYHEQAwAxERERUTMUERYHERUREVEwADEyAAAAAAAAADEwADEwAEERFg=='`

คุณแข่งขันในแม่ของฉันได้อย่างไร!?! ปิดการลงทะเบียนเมื่อหลายเดือนที่ผ่านมา ...
Magic Octopus Urn

1

Python 3, 377 ไบต์

from re import*;i=0
r=r'2_.7_./ .|2.| .4_.\\. _._d|.( (.3_). _ .2|_. |2 ._| |.a| |./ _2 .|3 |_. 4_2 . | |.\n'
e='an5n28 t27jf3b26 (t)10n14bfub pcp2n3n4 5_3c3g_2c4gar u)q|erjorjo|bhr k e|/k2n)e)sk_|f3 qlbbbb |g2bplb3_b_ls/q|4ja|mo_iqi/qisou2h|t)_i(3_sokp)ma14 |m3 (p/'
for j in r.split('.'):e=sub(chr(117-i),j,e);i+=1
print(sub('(\d+)(.)',lambda x:int(x.group(1))*x.group(2),e))

คล้ายกับคำตอบ javascript ที่ใช้ RLE รวมถึงการแทนที่สำหรับสตริงย่อยทั่วไป

คิดว่าฉันไปด้านบนเล็กน้อยกับสิ่งที่แทนที่อาจจะไม่ได้ช่วยอะไรมาก แต่ก็ดี


1

JavaScript (ES6), 354 ไบต์

ความพยายามอื่น ไม่มีประสิทธิภาพเท่ากับระยะเวลาในการวิ่ง

i=0,console.log(`1c1bt96zfx1!1n4ikabr1w5!1n4iut4kyue!krgqthnkpkem8!43tb4j2urme!8hwrsagny80!69dfowb7hvk!2xj89rpvcb2!23l14ken5i1!1xzn6ns7j78!1tzyivgb4h2!1yy885vts00!12du7km7f51!1lvpcyzgbfq!17nicizf8og0!1246xqebgb9!1n4j181hywz!`.replace(/\w+!/g,v=>parseInt(v,36).toString(4).replace(/./g,w=>"_ |"[w]||`
()

)/\\\\)//))/)/)
((((((//
\\//\\)(/\\))
(/`[i++])))

เก็บพวงของตัวเลขฐาน 36 ในสตริงแรกคั่นด้วย!ตัวคั่น จากนั้นแทนที่ตัวเลข (พร้อมด้วย!) ด้วยการแทนค่าฐาน 4 ของตัวเลข แทนที่ทั้งหมด 0, 1 และ 2 ในจำนวนฐาน 4 _,  และ|ตามลำดับและทั้งหมด 3 จะถูกแทนที่ด้วยองค์ประกอบในสายที่สองตามลำดับ


1

Python 3, 263 ไบต์

ผ่านครั้งแรกโดยใช้ builtins

from base64 import*
from zlib import*
print(decompress(a85decode(b"Gas1Y_%\"=:#lAfQT$<1I,'acT5E):N/+l.oQs`98(esP<+T'c!7p'"
b";rpgIeCXZQ&]8Z,D1U/2<LjGq-FIBH)'D@dH'FCjS[&_Wa(Y9N^<LMJiMJrGNuf@S=?GWT(W34:oA%hQ<"
b"thh3pT#pD4$L]LSa%IG!R,BiQaoor91d>uo0VEQs4+2O[m4o")).decode())

เพิ่มราคาพิเศษและ linebreaks เพื่อหลีกเลี่ยงการเลื่อนแนวนอนเพื่อจุดประสงค์ในการแสดงผลเท่านั้น (ไม่นับคะแนน)


6
ไม่ต้องกังวลกับการเลื่อนในแนวนอน เพียงคัดลอกวางข้อความตามที่เป็นเพราะนั่นคือสิ่งที่เราสนใจ
El'endia Starman

ฉันรู้ว่าฉันชอบหลีกเลี่ยงมัน อาจเป็นไปได้เช่นกันที่ไม่ทำ hex ทิ้งทั้งหมดสวย
Nick T

คุณสามารถลองเก็บข้อมูล zlib ในสตริงได้ คุณควรหลีกเลี่ยงตัวละครบางตัว แต่อาจสั้นกว่านี้มาก ดูคำตอบนี้เป็นข้อมูลอ้างอิง
agtoever

@ ถึงrepr()จำนวนสตริงดิบนั้นยาวกว่า ascii85 มากนัก
Nick T

4
@NickT โปรดลบเครื่องหมายคำพูดและช่องว่างเพิ่มเติม รหัสของคุณควรเป็นรหัสที่เราสามารถคัดลอก / วางลงในไบต์เคาน์เตอร์และได้รับผลลัพธ์เดียวกัน ขอบคุณ หากคุณต้องการเวอร์ชั่นที่ดีและแสดงผลได้ให้โพสต์เวอร์ชันที่ไม่ตีกอล์ฟ
mbomb007

1

CJam, 229

"3WPPEFXvN'vlFBse/cTD>.x:Na,Y&NJH^tZ%xL(NkYzo0Rq%BeV&Zl1T^2y69,W/QC4pL`nv<Jo$'Cq.'m2-3H#9teHi&<uyO>f V)D\E y'*]oGq*ODjQLyoS*GyM7;\Z.n6B;J@OyEaE!4'E5p5MOl^#[,ZtA;`jy,gTP^\;;i<A6^:k1%"' fm91b31b"}*+{~'NHIF\JLM
OGQK)(P/RST|_- \""f=~

ไม่มีตัวละครขี้ขลาดและไม่มีการบีบอัดในตัว :)

ลองออนไลน์


1

Lua, 353 ไบต์

โปรแกรม:

a=(" _ 5_ 28_7 27_\n|~ 2~2 26(_7) 10_ 13~2\n|~_2~2 _4 _4 2_4 2_ 3_ 4_5 3_4 2_3|~_ 2_4 2_4|~\n| 2_2)|~/ _ ~ 2_ \\| 2_ \\|~3 ~ 2_3) / _ ~/_3) 2_)/ _ 2)/ _3)_|\n|~ 2~ ( (~9_|~ ~2_4( (~2_3~2_( (/ /|~ 4_\n|_| 2~_|\\_|2_|~|_/|~|_/ \\_2 ~ ~_7)_|2_(_3/ \\_3)_4)_| 2~_|\n 13~_| 2~_| 3(_4/"):gsub("(.)(%d+)",function(a,b)return a:rep(b)end):gsub("~"," |")print(a)

ขอบคุณ @jrich สำหรับการบีบอัด


1

Ruby, 271 262 248 ไบต์

require'zlib'
require'base64'
puts Zlib.inflate Base64.decode64'eJx1UMENxDAI+zMFz+bFQpG8CMMX46DeVWpQrJjYhGDp6e7Cj3VBaz0p/CvKbrWBLkStYHAcEH8uafqhUKE6rjoFTWS+BxWdZD9ShHrDakosju6oe7sq8h04hZLPHgX0AdLwODOBG8VOy0a2MRFC31CPOTOiggPrq6LKyW6vqU1+Zhx2A7NMZ9I'

ลองที่นี่


1

เป็นกลุ่ม , 374 365 326 319 313 311 การกดแป้น

9 การกดแป้นพิมพ์ขอบคุณที่@Dr แฮมและไข่เขียวดีเจ

:im @ ___<CR>
:im % _|<CR>
a _## _<esc>28a <esc>yl7a_<esc>27pa_ <CR>
|!#!!<esc>26pa(<esc>7a_<esc>a)<esc>10pa_<esc>14pa|!<CR>
|!__!!<esc>3a @_<esc>bi <esc>A#_# _##@__# @_#@|!_#@_#@%!<CR>
|#__)|!/ _ !#_ \|#_ \<esc>4a| <esc>a!#@) / _ !/@)#_)/ _#)/ @)%<CR>
|!#! ( (<esc>9a!<esc>a%! !!@_( (!!@!!_( (/ /|!##_ <CR>
|%#!%\%|_<esc>2a|!|_/<esc>a \__ ! !<esc>7a_<esc>a)%|_(@/ \@)@_)%#!%<CR>
<esc>14pa|%#!%# (@_/<esc>
:%s/!/ |/g<CR>
:%s/#/  /g<CR>

อาจจะสามารถตีกอล์ฟต่อไปโดยใช้:nn?


ต่อไปนี้เป็นคำแนะนำสั้น ๆ หลังจากผ่านไปหนึ่งครั้ง 1. คุณทำ<number>a <esc>มาก ถ้าคุณทำในพื้นที่ที่คุณสามารถแทนที่นี้กับyl <number>pที่ควรบันทึกรอบ 8 2. คุณสามารถแทนที่ด้วยea Aคุณอาจใช้เวลามากขึ้นหากคุณเปลี่ยนวิธีการของคุณ แต่นั่นคือคำแนะนำสั้น ๆ ที่ฉันเห็น
James

@DrGreenEggsandHamDJ มีวิธีใดบ้างที่ฉันสามารถแมปการกดแป้นพิมพ์เดียวกับการพิมพ์_และ|อื่น ๆ ?
Leun Nun

ฉันใช้โทรศัพท์ของฉันดังนั้นฉันจึงไม่สามารถทดสอบได้ แต่ฉันคิดว่านี่ไม่ถูกต้อง :sแทนที่หนึ่งบรรทัดเท่านั้น :% sคุณต้องการ คุณสามารถบันทึกการกดแป้นบางอย่างโดยทำ:im(imap) แทนการค้นหาและแทนที่ (แม้ว่าคุณอาจจำเป็นต้องใช้ ctrl-v หรือ ctrl-q เพื่อทำแผนที่กับช่องว่าง)
James

@DrGreenEggsandHamDJ ยอดเยี่ยม แต่การใช้:imสามารถเล่นกอล์ฟได้เพียงไม่กี่ไบต์
Leun Nun

1

Javascript (ES6) 464 352 ไบต์

00000000  63 6f 6e 73 6f 6c 65 2e  6c 6f 67 28 60 08 09 28  |console.log(`..(|
00000010  09 c3 a0 39 c3 98 09 08  0f 0c 08 0c 18 0c 08 0c  |...9............|
00000020  c3 90 0a 39 0e 50 09 70  0c 08 0c 0f 0c 08 0c 11  |...9.P.p........|
00000030  08 0c 08 0c 08 21 08 21  10 21 10 09 18 09 20 29  |.....!.!.!.... )|
00000040  18 21 10 19 0c 08 0c 09  10 21 10 21 0c 08 0c 0f  |.!.......!.!....|
00000050  0c 10 11 0e 0c 08 0c 0a  08 09 10 0c 10 09 08 0c  |................|
00000060  10 09 08 0c 08 0c 08 0c  08 0c 10 0c 10 19 0e 08  |................|
00000070  0a 08 09 10 0c 0a 19 0e  10 09 0e 0a 08 09 10 0e  |................|
00000080  0a 08 19 0e 09 0c 0f 0c  08 0c 18 0c 08 0a 08 0a  |................|
00000090  08 0c 08 0c 08 0c 08 0c  08 0c 08 0c 08 0c 08 0c  |................|
000000a0  08 0c 09 0c 08 0c 10 0c  08 0c 21 0a 08 0a 08 0c  |..........!.....|
000000b0  08 0c 19 08 0c 08 0c 09  0a 08 0a 08 0a 0c 08 0c  |................|
000000c0  20 09 08 0f 0c 09 0c 18  0c 09 0c 09 14 09 0c 08  | ...............|
000000d0  14 09 0a 0c 08 14 09 0a  08 11 10 0c 10 0c 39 0e  |..............9.|
000000e0  09 14 09 0a 19 0a 08 19  0e 21 0e 09 0c 18 0c 09  |.........!......|
000000f0  0c 0f 70 0c 09 0c 18 0c  09 0c 18 0a 21 60 2e 73  |..p.........!`.s|
00000100  70 6c 69 74 28 22 22 29  2e 6d 61 70 28 61 3d 3e  |plit("").map(a=>|
00000110  61 2e 63 68 61 72 43 6f  64 65 41 74 28 29 29 2e  |a.charCodeAt()).|
00000120  6d 61 70 28 61 3d 3e 41  72 72 61 79 28 28 61 3e  |map(a=>Array((a>|
00000130  3e 33 29 2b 31 29 2e 6a  6f 69 6e 28 22 20 5f 2f  |>3)+1).join(" _/|
00000140  5c 5c 7c 28 29 5c 6e 22  2e 73 70 6c 69 74 28 22  |\\|()\n".split("|
00000150  22 29 5b 61 26 37 5d 29  29 2e 6a 6f 69 6e 28 22  |")[a&7])).join("|
00000160  22 29 29                                          |"))|

ลองที่นี่!


1

HTML, 482 481 475 ไบต์

<pre> _     _                            _______                           _ 
| |   | |                          (_______)          _              | |
| |__ | | ____ ____  ____  _   _    _____   ____  ___| |_  ____  ____| |
|  __)| |/ _  |  _ \|  _ \| | | |  |  ___) / _  |/___)  _)/ _  )/ ___)_|
| |   | ( ( | | | | | | | | |_| |  | |____( ( | |___ | |_( (/ /| |    _ 
|_|   |_|\_||_| ||_/| ||_/ \__  |  |_______)_||_(___/ \___)____)_|   |_|
              |_|   |_|   (____/


หมายเหตุ: ไม่มีใครสามารถดูสิ่งนี้อย่างถูกต้องบนโทรศัพท์
user8397947

เมื่อคุณทำสิ่งนี้ทั้งหมดคุณไม่จำเป็นต้องมีแท็กปิดล่วงหน้า
เครื่องมือเพิ่มประสิทธิภาพ

และทำไมคุณถึงมีช่องว่างต่อท้ายบนบรรทัดที่ 5 : P
เครื่องมือเพิ่มประสิทธิภาพ

1

05AB1E , 171 ไบต์

"_ |0/)(
\"•1æÆ&¢ÙDÿœƒ˜¶f
¹∍[saÎΛÞÀθ¶\‚e–8(¬šôon&{wαλµ.cRŽ1ºWèíÄʒΣ ι.ì¨Gt‰?WиΛÆ—©UãšW#тÊ÷´¥b™¢,V§¯l€éàøjòÐø¬ëäÇ kĀT¬Àн4p«ªÒdαñáyÛƦ‚@ø‘Ñ‚иu₅₂Qp>øî÷^‡иÓ7¯ÓÇŠ@ÄéS•9вèJ0…   :

ลองออนไลน์

คำอธิบาย:

"_ |0/)(
\"            "# Push string "_ |0/)(\n\"
  1æÆ&¢ÙDÿœƒ˜¶f
  ¹∍[saÎΛÞÀθ¶\‚e8(¬šôon&{wαλµ.cRŽ1ºWèíÄʒΣ ι.ì¨Gt‰?WиΛÆ—©UãšW#тÊ÷´¥b™¢,V§¯l€éàøjòÐø¬ëäÇ kĀT¬Àн4p«ªÒdαñáyÛƦ‚@ø‘Ñ‚иu₅₂Qp>øî÷^‡иÓ7¯ÓÇŠ@ÄéS•
               # Push compressed integer 1097503083536947704653792841425892054204805659502021445044262296065039856679486956980779201344195600186307613120325421519873972685660197036332437042797892085831181080642513349371962439499848029872306826792254102689695782393365417312419084231420872539225014767457254170199022042856591776594745757160095950475758150232076499909206475280246564765470414367938
   9в          # Converted to Base-8 as list: [1,0,3,1,1,0,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,7,2,1,2,3,2,1,2,3,3,3,3,3,3,3,3,1,1,6,0,0,0,0,0,0,0,5,3,3,3,1,0,3,3,3,3,1,1,2,1,2,7,2,1,2,0,0,1,2,1,2,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,3,0,3,1,0,0,0,0,0,3,0,0,0,0,1,1,0,0,0,2,1,2,0,1,1,0,0,0,0,1,1,0,0,0,0,2,1,2,7,2,1,1,0,0,5,2,1,2,4,1,0,1,1,2,1,1,0,1,8,2,1,1,0,1,8,2,1,2,1,2,1,2,1,1,2,1,1,0,0,0,5,1,4,1,0,1,1,2,4,0,0,0,5,1,1,0,5,4,1,0,1,1,5,4,1,0,0,0,5,0,2,7,2,1,2,3,2,1,6,1,6,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,0,2,1,2,1,1,2,1,2,0,0,0,0,6,1,6,1,2,1,2,0,0,0,1,2,1,2,0,6,1,6,4,1,4,2,1,2,3,1,0,7,2,0,2,3,2,0,2,8,0,2,2,0,2,1,2,2,0,4,2,1,2,2,0,4,1,8,0,0,1,1,2,1,1,2,0,0,0,0,0,0,0,5,0,2,2,0,6,0,0,0,4,1,8,0,0,0,5,0,0,0,0,5,0,2,3,2,0,2,7,3,3,3,3,1,1,2,0,2,3,2,0,2,3,6,0,0,0,0,4]
     è         # Index each into the string
      J        # Join all characters together to a single string
       0   :  # Replace all "0" with "   " (3 spaces)
               # (and output the string implicitly as result)

ดูเคล็ดลับของฉันที่ 05AB1E นี้ (ส่วนวิธีบีบอัดจำนวนเต็มขนาดใหญ่และวิธีบีบอัดรายการจำนวนเต็ม? )เพื่อทำความเข้าใจว่ารายการจำนวนเต็มที่บีบอัดและฐาน -8 ทำงานอย่างไร


ฉันจะเอาชนะคุณ;)
Magic Octopus Urn

1
ไม่เป็นไรฉันไม่ใช่ +1
Magic Octopus Urn

@MagicOctopusUrn: D
Kevin Cruijssen

1

C (gcc) , 280 279 bytes

f(i){for(char*A=" _|/\\()\n",*s="H@@H.@#IA-@AWP@PP-@M#IF$@H'@BzBJABBIIHIAHIAH@H@@IIA@II@IQPAHIAHIQPW@IVPCAP@AT@AT#P@BHIFCAPKIFH^H@^HINzBB@BEE(BJBBPPIIEEBJIPPihCSP@@AWQ@PQLRQPJSPJCLAP@J#INRiIY`IqIINB@Jz'@JB@JB@MIY";i=*s>63?:*s++;s++)for(;i--&31;)printf("%c%c",A[*s&7],A[*s/8&7]);}

ลองออนไลน์!

rundown

เรากำหนดตัวอักษร 8 สัญลักษณ์" _|/\\()\n"และบีบอัดข้อมูลโดยการบรรจุสองสัญลักษณ์ต่อไบต์ตามดัชนีของตัวอักษรที่มีสัญลักษณ์แรกในบิต 0..2 และที่สองใน 3..5 บิต 6 ถูกตั้งค่าเพื่อนำไบต์ผลลัพธ์ไปยังขอบเขต ASCII ที่พิมพ์ได้ RLE แบบง่าย ๆ จะรันบนสตริงที่บีบอัด หากสัญลักษณ์ในสายอักขระเกิดขึ้นมากกว่าสองครั้งในแถวนั้นจะถูกจัดเก็บเป็นคู่อักขระโดยตัวแรกจะมีความยาวของรันบวก 32 (บิต 5 ชุด) และสัญลักษณ์ตัวที่สอง

f(i){                                               i is run-length; not actually passed to f()
    for(                                            Loop over compressed string.
        char*A=" _|/\\()\n",                        Alphabet
        *s="...";                                   Compressed string.
        i=*s>63?:*s++;                             If char is outside symbol range, use as run-length and skip to next. Stop on EOS.
        s++)                                        Advance to next char.
            for(;i--&31;)                           Repeat symbol pair per run-length.
                printf("%c%c",A[*s&7],A[*s/8&7]);   Extract symbols from character and print.
}

ลองออนไลน์!


@ceilingcat อืม ไม่สามารถเรียกคืนได้หากไม่มีเอาต์พุตขี้ขลาด ถึงกระนั้นก็ตามมันก็เพิ่มขึ้นอีก 279 เท่า
Gastropner

0

Javascript ES6, 314 ไบต์

มีไบต์ที่ไม่สามารถพิมพ์ได้ ใช้เวทมนตร์ JS สีดำเพื่อให้ทำงานได้ ถ้าconsole.log()จำเป็นสำหรับคำตอบนี้จะถูกต้องนับไบต์จะเป็น 327

[...`Ãm°Ûm¶Ûm¶Ûm¶Û\`��m¶Ûm¶Ûm¶Ûm�ç�±Çm¶Ûm¶Ûm¶Ûh���¶Ûm°Ûm¶Ûm�<â�8à�À�°�l6Ãm��m��\`�Äl����Ç��§��Ça�ØfqÇ��À�����»
°Ú¬� ó�Øé¦8ã�8ã� ã±Ä�&�â�Ç�4Y�vØnAÛ�X$�HG��\`lv �� ���0��
�Ø�öÛm¶Ûb�Ø�¶���`].map(a=>'0'.repeat(8-(z=a.charCodeAt().toString(2)).length)+z).join``.replace(/.{1,3}/g,a=>`_|/\\()
`[parseInt(a,2)]).slice(0,-2)

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

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

f=_=>
[...`\xc3\x6d\xb0\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x60\x00\x00\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6d\x86\xe7\x1d\xb1\xc7\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x68\x00\x00\x0b\xb6\xdb\x6d\xb0\xdb\x6d\xb6\xdb\x6d\x8e\x3c\xe2\x06\x38\xe0\x00\xc0\x01\xb0\x00\x6c\x36\xc3\x6d\x80\x00\x6d\x80\x03\x60\x01\xc4\x6c\x00\x1b\x00\x01\xc7\x9d\x80\xa7\x15\x86\xc7\x61\x99\xd8\x66\x71\xc7\x1d\x8e\xc0\x0b\x96\x1b\x14\x00\xbb\x0a\xb0\xda\xac\x00\xa0\xf3\x8e\xd8\xe9\xa6\x38\xe3\x8e\x38\xe3\x8e\x20\xe3\xb1\xc4\x00\x26\x98\xe2\x00\xc7\x11\x34\x59\x1c\x76\xd8\x6e\x41\xdb\x10\x58\x24\x1c\x48\x47\x12\x16\x60\x6c\x76\x20\x00\x00\xa0\x91\x00\x0b\x30\x05\x00\x0a\x0e\xd8\x83\xf6\xdb\x6d\xb6\xdb\x62\x0e\xd8\x83\xb6\x80\x00\x80`].map(a=>'0'.repeat(8-(z=a.charCodeAt().toString(2)).length)+z).join``.replace(/.{1,3}/g,a=>`_|/\\() 
`[parseInt(a,2)]).slice(0,-2)

a.innerHTML=f()
<pre id=a>


2
มันทำงานอย่างไร
Oliver Ni

0

JavaScript, 294 292 ไบต์

_='_&3,,& *.,,&_ 7+&+,,-(*.)&&& _,-+7+__1 . .-.3&_& ._&.-*+_-.-.+7|3_)+2_43 b|3 \\+14-*) 2_4/*)3)2_-)2*)_|7+&| 51111 6+-+.51*1_52/+& _ 7|0\\_|6+6/+62\\__44*.)_|6(*2\\*).)07,40&(./,&&&&0_|&6|&- .*_*___1 ++| |3-_4-|- 2/ 5( (6|_7\n';for(Y in $='7652-43+1*.&0,')with(_.split($[Y]))_=join(pop());_

นี่ ... เป็นเพียงการเข้ารหัสของศิลปะ ... ด้วยสิ่งนี้ ...

หากconsole.log()จำเป็นต้องมีการนับไบต์คือ307 305 ไบต์

294-> 292 -2B สำหรับการเข้ารหัสเพื่อ\n7

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