Anzeige "Frohe Ostern!"

11

Ihre Aufgabe ist es, die folgende ASCII-Grafik zu drucken:

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

Denken Sie daran, dies ist , also gewinnt der Code mit der geringsten Anzahl von Bytes. Viel Glück.

Oliver Ni
quelle
2
@FryAmTheEggman das ist ganz anders als das vermeintliche Duplikat Rickroll. Es werden nur wenige Symbole verwendet, |()/\_was zu völlig unterschiedlichen Formen der Komprimierung führt. Wir hatten schon ähnliche ASCII-Kunstherausforderungen, aber ich würde gerne sehen, wie diese Frage ausgeführt wird, um zu sehen, ob jemand die Geometrie nutzt. Auf der anderen Seite ist es nicht besonders bemerkenswert, und Sie haben Recht, wir brauchen keinen Osteranhänger.
Level River St
1
@FryAmTheEggman Die beste Lösung für eine Kolmogorov-Komplexität hängt stark von der Struktur der Ausgabe ab. Dies ist kein Text, also kein Betrug.
Lirtosiast
7
@lirtosiast Der begrenzte Zeichensatz mag von Bedeutung sein, aber ich denke, dass dies mit ziemlicher Sicherheit von denselben Techniken wie in den textbasierten Fragen dominiert wird. Das ist aber nur meine Meinung, die Community kann schließlich entscheiden, welche unserer Ansichten durchgesetzt werden soll.
FryAmTheEggman
4
Mögliches Duplikat von Minecraft Mirrored
Blue
1
Dies ist anders, da es keine Eingaben gibt und es daher nicht erforderlich ist, Eingaben vorzunehmen und diese zu analysieren.
Thepiercingarrow

Antworten:

10

Bubblegum, 130 Bytes

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.

Probieren Sie es online aus.

Komprimiert mit zopfli --deflate --i10000.

ein Spaghetto
quelle
Sind das nicht 588 Bytes?
Thepiercingarrow
15
@ MarkWright Was Quartata gepostet hat, ist ein Hexdump des tatsächlichen Codes
Sp3000
10

JavaScript (ES6), 377 373 360 359 345 Byte

Vielen Dank an @Neil für eine Einsparung von einem Byte und an @ edc65 für weitere 14!

Ich dachte, ich würde es versuchen. Komprimiert häufig wiederholte Muster im Text.

_____ (5 Unterstriche) wird gespeichert als _5

      (5 Leerzeichen) wird gespeichert als  5

 | | | | |(5 des  |Musters) wird gespeichert als~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,' |'))
jrich
quelle
Beachten Sie den ES6 =>.
CalculatorFeline
Scheint, als könnten Bytes von RLEing _s gespeichert werden .
CalculatorFeline
@CatsAreFluffy Was meinst du damit? Es komprimiert Läufe _mit _gefolgt von der
Anzahl
Hoppla, ich war immer noch in der 377-Byte-Version.
CalculatorFeline
~1oder _2scheint es kaum wert zu sein. (Warum nicht |2zum Beispiel verwenden?)
Neil
8

BinaryFuck , 565 378 Bytes

Dadurch werden im Wesentlichen die im Array verwendeten Zeichen gespeichert, dann durch das Array navigiert und entsprechend gedruckt. Derzeit ziemlich lang, wird es verkürzen.

1000010000000000000000110011110001010010000011011111010010110001011011000000010010111011001111011110010010010000010000010000000000000010000010000000000010000010000000000011011011011011011011011011001111010010000000000110001010000000000000000010000000000011011111010010001010001001001001010010001010000000000000000000000000000010001001001001010000000000000000000000000000000011011011011100010100011100100100100100010100011100100100100100100100100100100100100100100100100100100100100100100100100100100100100010100100100100100100100011100100100100100100100100100100100100100100100100100100100100100100100100100100100010100011100010010010010100011011011011011100010100011100010100100100011100010100011100010100100100100100100100100100100100100100100100100100100100100100100100100100100011011100010010010100100100100100100100010100011011100100100100100100100100100100010100011100100100100100100100100100100100100100100011100010100011100010010010010010100011011011011011100010100011100010010100100011100011100010100011100010100010100100100100011100010100100100100011100100010100100100100011100100010100011100100100010100011100100100100010100100100100100011100100100010100100100100011100100010100100100011011100010100011100010010100011100100010100100100100011100100010100100100100011011100010100011100010010010010010100011011011011011100010100100010100100010100011011011100010100011100011011100010010010100010100011100100011100010100100010100011100010010010100011011011011100010100100010100011100010010010100011011011011100010100011100010100011100010100011100010100100011100010100100010100100100010100011011100011011011100010010010100010100011100100011100011011100010010010010100100100010100011011100100010100010100011011011011011100010010010100010100011100100010010100011011011011011100010010010100010100100100010100011100011011100010010010010010100011011011011011100010100011100010100100100011100010100011011100010010100011011100010010100011100010100011100010100011100010100011100010100011100010100011100010100011100010100011100010100011100010010100011011100010100011100010100100011100010100011100010010100100100100011011011100010010100011011100010010100011100010100011100010010100100100011100011100010100011100010010100011011011100010010100011011100011100010010010100011011011100010010100010100011100010100100100100010100011100010010010010100011011011011011100010010100011011100010100100100011100010010100011011100010010010010100011011100011011100100010010100011011100010100011100100010010100011011011011100010010100010100011100100010010100011011011011100010010010100010010010100011011100100011100100011100010100100011100010010100100100100100100100010100011100011011100100010010100011011011100010010010100100100011011011011100010010010100010010010100011011100100100010100011100100100100010100011100011011100010100100100011100010010100011011100010010010010010100011011011011100100100100100100100100100100100100100100011100010010100011011100010100100100011100010010100011011100010100100100011011100010010010100100100100011011011011100

Hier ist der Code ohne Wolf:

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

BEARBEITEN: Durch Umordnen der Reihenfolge der Zeichen in den Zellen habe ich 186 Bytes gespart!

thepiercingarrow
quelle
8
So funktioniert eine Byteanzahl nicht. Wenn Sie die genaue Folge von Bytes nicht an den Interpreter übergeben können, können Sie diese Anzahl von Bytes nicht als Ihre Byteanzahl beanspruchen.
Türknauf
1
Wenn es ist ein BF-Interpreter , der in 3-Bit / char nimmt. Bitte fügen Sie einen Link zum Interpreter und einen Hexdump / Pastebin des codierten Codes hinzu, wenn Sie 565 Bytes beanspruchen möchten.
Downgoat
2
Ja, es gibt einen 3-Bit-Brainfuck-Interpreter . Fügen Sie in Ihrer Antwort einen Link dazu zusammen mit einer Hexdump / Binärdarstellung Ihres Codes hinzu. Die Sprache wäre kein Brainfuck mehr, daher müssten Sie "CompressedFuck" in der Kopfzeile angeben. Ich empfehle, es so zu belassen, wie es ist, wenn man sieht, dass Brainfuck-Leute nicht erwarten, dass es sehr kurz ist.
Downgoat
1
Dies sieht nicht nach einem gültigen BinaryFuck-Programm aus. es beginnt nicht mit einem 1. Bitte geben Sie einen Link zu einem Interpreter und den Hexdump des Quellcodes an, damit Ihre Ergebnisse reproduziert werden können.
Dennis
2
Wenn Sie 3 Bits pro Befehl gemäß Binaryfuck beanspruchen möchten, müssen Sie den Binaryfuck-Quellcode (wahrscheinlich in einem Hex-Dump oder Base64-codiert) veröffentlichen und daraus Bytes berechnen. Derzeit handelt es sich bei dieser Übermittlung um eine Brainfuck-Übermittlung mit 1012 Bytes, von denen 3 irrelevant sind (die Zeilenumbrüche).
Mego
6

JavaScript (ES6), 380 Byte

Der Vollständigkeit halber bemühe ich mich, eine andere Komprimierungsmethode zu verwenden, obwohl diese, wie sich herausstellt, nicht so effizient ist wie die Lauflängencodierung. Jede Ziffer gibt an, dass die letzten N bereits generierten Zeichen wiederholt werden. Nachfolgende Ziffern können bereits wiederholte Zeichen wiederholen, z . B. werden | 23zu | | |. Ich wünschte nur, ich könnte einen Lauf von drei Zeichen komprimieren.

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>

Neil
quelle
6

C, 517 427 407 Bytes

  • dank @ceilingcat wenige Bytes gespart
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 Online versuchen

#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;
}
Khaled.K
quelle
5

JavaScript, 297 Bytes

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]))

Einfache Codierung der zehn (soweit ich das beurteilen kann) häufigsten Teilzeichenfolgen. Sie sind wegen Überlappungen nicht in Ordnung; Mein Encoder (unten) muss zB '_ 'und ' _'vorher sehen ' '.

(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]

Dies erfordert eine Zeichenfolge und ein Array von Teilzeichenfolgen zum Codieren und gibt a) die codierte Zeichenfolge b) die Liste der möglichen nächsten Einsparungen c) die Anzahl der bisher gespeicherten Bytes zurück.

Neil
quelle
5

𝔼𝕊𝕄𝕚𝕟 72 Zeichen / 209 Bytes

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

Try it here (Firefox only).

Nun, zumindest die Anzahl der Zeichen ist großartig, aber wir können die benutzerdefinierte Codepage nicht verwenden. Es ist nur eine LZString-Dekomprimierung. Ich arbeite auch an einer anderen Lösung - dazu später mehr.

Mama Fun Roll
quelle
5

Perl 5, 286 Bytes

perl -M5.01 happy.pl, wo happy.plist:

$_='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

Vielen Dank an Dom Hastings (in einem Kommentar dazu) für eine Idee, die mir zwei Bytes erspart hat und zu einer anderen Idee von mir geführt hat, die vier weitere gerettet hat.

msh210
quelle
Sicherlich sollten Sie Lals Abkürzung für verwenden |_;-)
Neil
3

Python 2, 343 328 316 Bytes

Diese Lösung verwendet keine Dekomprimierungsfunktionen oder andere Importe.

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

Lesbare Version:

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

Verwendet eine Version der Lauflängencodierung mit 3 Bits für ein Symbol aus der Menge "\ n _ | () /". Der Rest des Bytes ist die Länge, aber ich habe die Länge auf 10 begrenzt und sie so bearbeitet, dass die Ergebnisse druckbare Zeichen sind, die in einer Python-Zeichenfolge gültig sind, ohne dass sie maskiert werden.

Das Ersetzen der Zeichenfolge, die "|" entspricht, durch ein einzelnes Zeichen in den codierten Daten spart einige weitere Bytes.

Ich habe die nachgestellten Leerzeichen in den Zeilen 1 und 5 entfernt, was die Regeln möglicherweise etwas verbiegt, aber praktisch erscheint.

Dieses Programm generiert die gepackten Daten:

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)
Chuck Morris
quelle
Hallo und willkommen bei PPCG! Guter Eintrag!
NoOneIsHere
@NoOneWasLiterallyEverHereEver nicht, dass es ihr erster Beitrag oder irgendetwas ist, aber sicher :)
Katze
2

Python 2, 159 Bytes

Diese Quelle enthält nicht druckbare Zeichen und wird daher als Hexdump dargestellt, mit dem dekodiert werden kann xxd -r.

00000000: efbb bf70 7269 6e74 2278 017d 8fb5 7540  ...print"x.}..u@
00000010: 3114 c5fa 3f85 4abb f240 012d a2dd 432f  [email protected]/
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')
Anders Kaseorg
quelle
2

Schläger, 367 364 Bytes

(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))

Aufgrund einer ähnlichen Herausforderung antwortete ich .

Winny
quelle
2

/// , 282 279 Bytes

Verbesserung: Ich habe festgestellt, dass //die Ersetzungsbefehle zu viele enthalten , daher habe ich beschlossen, sie auch (auf m) zu komprimieren , wodurch ich 3 Bytes gespart habe.

/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

Komprimieren Sie den häufigsten Teilstring wiederholt.

Dreizehnte Generation, 282 Bytes

/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

Probieren Sie es online aus!

Erste Generation, 486 Bytes

Keine Komprimierung. Entkam dem /und dem \.

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

Probieren Sie es online aus!

Zweite Generation, 402 Bytes

Komprimierte zwei Leerzeichen auf a. Das /a/ /bedeutet "alle Vorkommen von abis zu zwei Leerzeichen ersetzen ".

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

Probieren Sie es online aus!

Dritte Generation, 369 Bytes

Komprimiert __auf b. Das /b/__/am Anfang bedeutet "alle Vorkommen von bbis ersetzen __".

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

Probieren Sie es online aus!

Vierte Generation, 339 Bytes

Komprimiert |auf c. Das /c/ |/am Anfang bedeutet "alle Vorkommen von cbis ersetzen |".

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

Probieren Sie es online aus!

Der Rest der Komprimierungsregeln

Also, die Liste der Komprimierungsregeln:

  • Komprimieren Sie zwei Leerzeichen auf a.
  • Komprimieren __auf b.
  • Komprimieren |auf c.
  • Komprimieren aaauf d.
  • Komprimieren bbauf e.
  • Komprimieren ccauf f.
  • Komprimieren ddauf g.
  • Komprimieren |cauf h.
  • Komprimieren \/auf i. Sowohl die \als auch die /in den Regeln sind weiter entkommen.
  • Komprimieren b_auf j.
  • Komprimieren |aauf k.
  • Komprimieren _auf l.
  • Komprimieren //auf m.

Wie Sie sehen, gibt es überlappende Komprimierungsregeln. Zum Beispiel gcodiert, ddwelche codiert, aaaawelche 8 Leerzeichen codiert.

Undichte Nonne
quelle
Wenn Sie betrunken klingen möchten, aber keinen Alkohol in Reichweite haben, sprechen Sie einfach einen davon aus. erwiesenermaßen auf Eltern arbeiten
Katze
2

Deine Mutter (nicht konkurrierend), 331 Bytes

Dekodieren Sie den String und dekomprimieren Sie ihn mit dem Jelly-Kompressor

'IF8KfCgpL1z/AQAAAQAAAAAAAAAAAAAAAAAAEREREAAAAAAAAAAAAAAAAAAQIwMAAwMAAAAAAAAAAAAAAAAAQREREVAAAAAAAQAAAAAAAAAwMjAxEDAwEREBERABERABAAEAABEREAAREQAREwMQAREQARETAyMAEVMDYBADABBzABBzAwMDADABEVBgEANhEVABVgEAVgERUTIwMAAwQEAwMDAwMDAwMDEwMAMDERFAQDAxEQMDFARgYwMAABAjEwADE3EzEwMxYwMxYHEQAwAxERERUTMUERYHERUREVEwADEyAAAAAAAAADEwADEwAEERFg=='`
TuxCrafting
quelle
Wie bist du zu meiner Mutter gekommen?!?! Registrierung vor Monaten geschlossen ...
Magic Octopus Urn
1

Python 3, 377 Bytes

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))

Ähnlich wie bei der Javascript-Antwort wurde RLE plus eine Reihe von Ersetzungen für gängige Teilzeichenfolgen verwendet.

Ich glaube, ich habe mit dem Ersetzen ein bisschen übertrieben, wahrscheinlich hat das nicht viel geholfen, aber na ja.

mtp
quelle
1

JavaScript (ES6), 354 Byte

Ein weiterer Versuch. Leider nicht so effizient wie die Lauflänge.

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++])))

Speichert eine Reihe von Basis-36-Zahlen in der ersten Zeichenfolge, die durch ein !Trennzeichen begrenzt sind. Ersetzt dann die Zahlen (zusammen mit den !) durch die Basis-4-Darstellungen der Zahlen. Ersetzt alle 0'en, 1'S, und 2 ist in der Basis-4 - Nummer mit _,  und |bzw., und alle 3'S sind mit den Elementen in der zweiten Folge der Reihe nach ersetzt.

jrich
quelle
1

Python 3, 263 Bytes

Erster Durchlauf mit eingebauten Funktionen.

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())

Einige zusätzliche Anführungszeichen und Zeilenumbrüche wurden hinzugefügt, um horizontales Scrollen nur zu Anzeigezwecken zu vermeiden (nicht in der Punktzahl gezählt).

Nick T.
quelle
6
Mach dir keine Sorgen über horizontale Schriftrolle. Kopieren Sie einfach den Text wie er ist, denn das ist es, woran wir interessiert sind.
El'endia Starman
Ich weiß, ich ziehe es einfach vor, es zu vermeiden. Kann auch nicht alle Hex Dumps alle hübsch machen.
Nick T
Sie könnten versuchen, die zlib-Daten in einer Zeichenfolge zu speichern. Sie sollten einigen Charakteren entkommen, aber es ist wahrscheinlich viel kürzer. Siehe diese Antwort als Referenz.
Gegen
@agtoever die repr()der rohen Saite war viel länger als ascii85
Nick T
4
@NickT Bitte entfernen Sie die zusätzlichen Anführungszeichen und Leerzeichen. Ihr Code sollte so sein, dass wir ihn kopieren / in einen Bytezähler einfügen und das gleiche Ergebnis erzielen können. Vielen Dank. Wenn Sie eine schöne, anzeigbare Version wünschen, veröffentlichen Sie eine Version ohne Golf.
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=~

Keine funky Charaktere und keine eingebaute Komprimierung :)

Probieren Sie es online aus

Aditsu beenden, weil SE böse ist
quelle
1

Lua, 353 Bytes

Programm:

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)

Vielen Dank an @jrich für die Komprimierung.

Undichte Nonne
quelle
1

Ruby, 271 262 248 Bytes

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

Probieren Sie es hier aus

NARKOZ
quelle
1

Vim , 374 365 326 319 313 311 Tastenanschläge

9 Tastenanschläge dank @Dr Green Eggs und Ham DJ .

: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>

Kann wahrscheinlich mit weiter Golf gespielt werden :nn?

Undichte Nonne
quelle
Hier sind ein paar kurze Tipps nach einem Blick. 1. Du machst <number>a <esc>viel. Wenn Sie dies ylauf einem Leerzeichen tun , können Sie dies durch ersetzen <number>p. Das sollte um 8. 2. Sie sparen könnte ersetzen eamit A. Sie könnten wahrscheinlich noch mehr nehmen, wenn Sie Ihren Ansatz ändern, aber das sind die schnellen Tipps, die ich sehe.
James
@DrGreenEggsandHamDJ Gibt es eine Möglichkeit , dass ich einen einzigen Tastendruck zu tippen Karte könnte _und |etc?
Undichte Nonne
Ich bin auf meinem Handy, kann das also nicht testen, aber ich denke, das ist falsch. :sErsetzt nur in einer Zeile. Du willst :% s. Sie können auch einige Tastenanschläge speichern, indem Sie :im(imap) ausführen, anstatt zu suchen und zu ersetzen. (Obwohl Sie möglicherweise Strg-V oder Strg-Q verwenden müssen, um einem Leerzeichen zuzuordnen)
James
@DrGreenEggsandHamDJ Ausgezeichnet, aber mit :imkann ich nur noch ein paar Bytes Golf spielen, nehme ich an.
Undichte Nonne
1

Javascript (ES6) 464 352 Bytes

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

Probieren Sie es hier aus!


quelle
1

HTML, 482 481 475 Bytes

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

user8397947
quelle
Hinweis: Man sieht dieses Ding auf einem Telefon nicht einfach richtig an.
user8397947
Da Sie dies alles sowieso tun, benötigen Sie nicht das schließende Pre-Tag
Optimizer
Und warum haben Sie Leerzeichen in der 5. Zeile? : P
Optimizer
1

05AB1E , 171 Bytes

"_ |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…   :

Probieren Sie es online aus.

Erläuterung:

"_ |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)

Lesen Sie diesen 05AB1E-Tipp von mir (Abschnitt Komprimieren großer Ganzzahlen und Komprimieren von Ganzzahllisten? ) , Um zu verstehen, wie die komprimierte Ganzzahl und die Base-8-Liste funktionieren.

Kevin Cruijssen
quelle
Ich werde dich schlagen;).
Magic Octopus Urn
1
Egal, nein, ich bin nicht +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]);}

Probieren Sie es online aus!

Heruntergewirtschaftet

Wir definieren ein Alphabet mit 8 Symbolen " _|/\\()\n"und komprimieren die Daten, indem wir zwei Symbole pro Byte gemäß ihrem Index im Alphabet packen, wobei das erste Symbol in den Bits 0..2 und das zweite in 3..5 steht. Bit 6 wird gesetzt, um das resultierende Byte in ein druckbares ASCII-Gebiet zu bringen. Ein einfacher RLE wird dann auf dem komprimierten String ausgeführt. Wenn ein Symbol in der Zeichenfolge mehr als zweimal hintereinander vorkommt, wird es als Zeichenpaar gespeichert, wobei das erste die Lauflänge plus 32 (Bit 5-Satz) und das zweite das Symbol selbst enthält.

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

Probieren Sie es online aus!

Gastropner
quelle
@ceilingcat Hm. Kann ohne funky Ausgabe nicht zurückgerufen werden. Trotzdem habe ich es ein bisschen optimiert und auch 279 bekommen.
Gastropner
0

Javascript ES6, 314 Bytes

Enthält nicht druckbare Bytes. Verwendet etwas schwarze JS-Magie, um zu laufen. Wenn console.log()diese Antwort gültig sein muss, beträgt die Byteanzahl 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)

Es war ein großer Schmerz, das richtig zu machen, und ich konnte es nicht schaffen, das loszuwerden .slice(0,-2):(
Wird morgen in einer Erklärung bearbeitet, wenn ich weniger müde bin.

Ersetzt jedes einzelne Byte durch den entsprechenden Hex-Wert, damit das Code-Snippet ausgeführt werden kann

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>

Bassdrop Cumberwubwubwub
quelle
2
Wie funktioniert das?
Oliver Ni
0

JavaScript, 294 292 Bytes

_='_&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());_

Dies ... ist buchstäblich nur eine Kodierung der Kunst ... damit ...

Wenn console.log()erforderlich, beträgt die Byteanzahl 307 bis 305 Byte.

294-> 292, -2B zum Codieren \nnach 7.

Naruyoko
quelle