Wydrukuj favicon Stack Exchange


19

Wyzwanie

Wydrukuj lub zwróć favicon Stack Exchange, jak podano poniżej:

 ___________________
/                   \
---------------------
|                   |
---------------------
|                   |
---------------------
\__________    _____/
           |  /
           | /
           |/

To jest , więc wygrywa najkrótsza odpowiedź w każdym języku.


2
Czy lewy górny róg ma być lekko przesunięty?
ETHprodukcje

@ETHproductions To było zamierzone, ale teraz to zmieniam. W każdym razie wygląda to trochę niezręcznie.
musicman523

2
Rzeczywista moc wyjściowa wynosi 219 bajtów.
całkowicie ludzki

Końcowe linie i / lub końcowe spacje na liniach są dozwolone, prawda?
dzaima

Odpowiedzi:


43

Operacyjny język skryptowy Flashpoint , 263 195 bajtów

f={r="                   ";t="---------------------\n";s=" ___________________\n/"+r+"\\n"+t+"|"+r+"|\n"+t+"|"+r+"|\n"+t+"\__________    _____/\n           |  /\n           | /\n           |/";s}

Niewłaściwe narzędzie do pracy.

Zadzwoń z:

hint call f;

Wynik:

Formatowanie kończy się niepowodzeniem, ponieważ czcionka nie jest monospacowana.


49
Właśnie to, co sprawia, że ​​patrzysz na wyzwanie i myślisz „och, powinienem odpowiedzieć, że w Operacji Flashpoint”
zastanawia

7
@totallyhuman Wydaje mi się, że pisanie w języku skryptowym jest po prostu zabawne. Ma sporo dziwactw i ograniczeń, więc czasami trzeba użyć dziwnych obejść, co czyni je interesującymi (ale nie bardzo praktycznymi).
Steadybox

5
Kodowanie odpowiedzi prawdopodobnie dałoby lepszy wynik.
NieDzejkob

2
@NieDzejkob Teraz jest krótszy niż tylko twarde kodowanie wyjścia, ale bardziej nudny niż poprzednia wersja.
Steadybox

@totallyhuman A w szczególności z tym wyzwaniem chciałem przetestować, jak radzi sobie język z wyzwaniem złożoności Kołmogorowa (dla którego jest znacznie mniej niż idealny).
Steadybox

11

Węgiel drzewny , 38 37 33 30 bajtów

←×_χ↓F/||⟦ι¹¹⟧\×_⁹‖B_×ψ⁴↙↙³↑↑³

Wypróbuj online! Link jest do pełnej wersji kodu. Edycja: Udało się zapisać bajt za pomocą odbicia, chociaż @CarlosAlejo pokazuje, że można to zrobić w 37 bajtach bez odbicia. Zapisano kolejne 4 bajty, rysując lewy ¾ i odzwierciedlając końcowe ¼. Edycja: Poprzednia 33-bajtowa odpowiedź polegała na ReflectButterflyOverlap()niezadrukowaniu obszaru nakładania się z odbiciem, więc w przypadku zmiany tego zachowania szukałem rozwiązania, które na tym nie polegało, a wynik okazał się i tak krótszy, dzięki mojej kreatywne wykorzystanie drukowania tablicy. Wyjaśnienie:

←×_χ                            Print 10 `_`s leftwards (top row)
    ↓                           Move down to the next row
     F/||                       For each character in the string `/||`
          ι                     Current character
           ¹¹                   Integer 11, prints as `-----------`
         ⟦   ⟧                  Put both into an array
                                Implicitly print on separate lines
              \                 Implicitly print `\`
               ×_⁹              Implicitly print 9 `_`s
                  ‖B            Reflect right, overlapping the axis
                    _           Implicitly print `_`
                     ×ψ⁴        Implicitly delete 4 characters
                        ↙↙³     Move down left and print three `/`s
                           ↑↑³  Move up and print three '|'s

2
Bardzo dobrze zagrane. Uwielbiam to, że na to pytanie są cztery odpowiedzi na węgiel drzewny! ‖BOnie był w tym języku, kiedy ostatni raz go użyłem - będę musiał pamiętać o tym na przyszłość.
DLosc

Musiałem przekonać się, co miałeś na myśli, mówiąc „odzwierciedlając końcowe ¼”. Rzeczywiście dobrze zagrane!
Charlie,

8

/// , 98 bajtów

/'/  //&/
"""
|!! |//%/\\\/
!'|//#/_____//"/-------//!/'''' / ###____
\/!! \\&&
"""
\\##''#%'% %\/

Wypróbuj online! Lub zobacz to interaktywnie!


3
Czy istnieje narzędzie, które pozwala mi zobaczyć różne „kroki” programu ///? (Częściowe wykonanie po każdej wymianie.) To mogłoby pomóc mi je lepiej zrozumieć.
97 CAD

@ CAD97 Bawiłem się z tłumaczem online i zwykle przychodził z opcjami debugowania, ale sposób, w jaki interpreter internetowy porządkuje argumenty, nie działa w ten sposób. Możesz sam pobrać kopię tłumacza i zrobić coś takiego perl slashes.pl -d1 code.txt. Obecnie pracuję nad internetowym środowiskiem wykonawczym dla ///, ale może to zająć trochę czasu.
Conor O'Brien

3
@ CAD97 Powiedział, że sprawa online jest gotowa, spójrz!
Conor O'Brien

8

JavaScript (ES6), 113 112 bajtów

(Zapisano bajt dzięki @Craig Ayre.)

let f=

_=>` _19
/ 19\\
-21
| 19|
-21
| 19|
-21
\\_10 4_5/
 11| 2/
 11| /
 11|/`.replace(/.(\d+)/g,([a],b)=>a.repeat(b))
 
 console.log(f());


Wygląda na to, że przed funkcją zamiany masz zbłąkane miejsce. Właśnie wymyśliłem podobną aktualizację dla mojego rozwiązania JS o wielkości 113 bajtów. Nie wiem, czy powinienem to opublikować, czy pozwolić ci to mieć.
Shaggy

Ach, czekaj, dopiero teraz widzę, że opublikowałeś swoje rozwiązanie, zanim opublikowałem moje. Usunę mój, gdy dojdę do komputera, a ty możesz zapisać bajt replace(/.(\d+)/g,(a,b)=>a[0].repeat(b)).
Kudłaty

Dzięki, Kudłaty. Napisałem program do automatyzacji tego typu odpowiedzi i głupotą było, aby wyświetlało niepotrzebną przestrzeń. Twoje sugerowane replacestwierdzenie jest z pewnością ulepszeniem, które teraz wprowadziłem do mojego programu.
Rick Hitchcock

1
Można zapisać bajt dopasowania tablicy a: ([a],b)=>a.repeat(b))?
Craig Ayre

Tak, dziękuję! Nie znałem tej składni.
Rick Hitchcock

7

SOGL V0.12 , 32 31 bajtów

^$∙r↑Ψ«2τγæΕž‘╬Æ╬⁷"ƧΡ⅟?0Ξ³‘6«8ž

Wypróbuj tutaj!

Wyjaśnienie:

...‘               push a quarter of the icon
    Β             palindromize vertically
      ╬⁷           palindromize horizontally (these two should be ╬3 together, but spacing doesn't work correctly (though now it does since I fixed it))
        "...‘      push the extention
             6«8ž  at coordinates [12; 8] in the quad-palindromized image put that in

Kwadrans:

 __________
/
-----------
|
-----------

a druga część:

    
|  /
| /
|/

„razem”? "koryto"? Ponadto zajęło trochę czasu zrozumienie, co .oznacza wyjaśnienie string. Może użyć ^...'i "...'?
CalculatorFeline

@CalculatorFeline Zwykle robiłem ...dla skompresowanych ciągów (aka nonsens), ale ostatnio zacząłem robić jeden lub dwa. I nie krępuj się, aby naprawić moje błędy i gramatykę: p
dzaima

7

Python 2 , 115 bajtów, bardziej kreatywny pomysł

t,u,v,w,x,y,z='\n -/\\_|';k=w+t+11*u+z;i=t+21*v+t
print u+19*y+t+w+19*u+x+(i+z+19*u+z)*2+i+x+10*y+4*u+5*y+k+u,k,k+w

Wypróbuj online!

Python 2 , 102 bajty, nudny pomysł

print'eNrjUojHBFz6CpgghksXG+CqwaK2hgpqYxDuASkDM/S5kDUqKKDxUbn6XADUmClx'.decode('base64').decode('zip')

Wypróbuj online!


2
Głosuję nad tym, ponieważ zbyt wiele razy widziałem tę metodę. To jest nudne, aby oglądać w kółko.
R. Kap

8
@ R.Kap Chyba, że ​​istnieje krótsza droga, jest to raczej arbitralny powód, by głosować negatywnie.
Dennis

1
@Dennis Może, ale wciąż podtrzymuję swoją opinię i mam pełne prawo ją wyrazić. Widziałem tę metodę niezliczoną ilość razy używaną do tego rodzaju wyzwań i wymaga ona niewiele lub wcale kreatywności ze strony PO, które są dużymi aspektami, przynajmniej moim zdaniem, wyzwań złożoności Kołomogorowa, i stąd mój powód odrzucenia .
R. Kap

2
@ R.Kap Jeśli algorytmy kompresji ogólnego przeznaczenia potrafią tak łatwo pokonać ręczne, to jest to problem, a nie odpowiedź. Nie udało mi się nawet pokonać Bubblegum za pomocą Galaretki, a dekompresja miała bardzo niewiele nad głową w Galaretce.
Dennis

2
@Dennis Nie mówię tu nawet o długości kodu. Mówię o wysiłku i kreatywności, których, moim zdaniem, ta odpowiedź nie prezentuje się w języku, w którym można zrobić o wiele więcej, i dlatego głosowałem z góry. Jeśli nie zgadzasz się z moim rozumowaniem, to jest w porządku. W takim przypadku po prostu zgódźmy się nie zgadzać i zakończyć tę rozmowę tutaj, zanim będzie za długo. :)
R. Kap

6

Python 2, 124 bajty

a,b,d,e,f,g,h=' _-|/\\\n';r=d*21+h+e+a*19+e+h;n=f+h+a*11+e;print a+b*19+h+f+a*19+g+h+r*2+r[:22]+g+b*10+a*4+b*5+n+a*2+n+a+n+f

Wypróbuj online!


Nigdy nie używasz c, więc możesz go wyeliminować na 3 bajty. Wypróbuj online!
musicman523

@ musicman523 Nie wiem nawet, dlaczego to tam umieściłem. Dzięki za haczyk! :)
R. Kap

6

C (gcc) , 187 bajtów

Zaoszczędzono 2 bajty dzięki Cody Grayowi i 3 bajty dzięki Keyu Gan!

#define a"         "
#define s a" "a
#define l"\n---------------------\n"
f(){puts(" ___________________\n/"s"\\"l"|"s"|"l"|"s"|"l"\\__________    _____/\n"a"  |  /\n"a"  | /\n"a"  |/");}

Wypróbuj online!


2
putsbyłby trywialnie krótszy, gdyby dopuszczalna była nowa linia.
Cody Gray,

możesz użyć f()zamiast main(). Funkcja jest również akceptowalna.
Keyu Gan,

5

Rdza , 181 bajtów

||" ___________________
/2\\
1
1
3
\\__________    _____/
4|  /
4| /
4|/".replace("1","3
|2|").replace("2",&" ".repeat(19)).replace("3",&"-".repeat(21)).replace("4",&" ".repeat(11))

Wypróbuj online!

Rdza , 184 bajty

Ta wersja może być bardziej golfowa, ponieważ replacekażdy z nich kosztuje mniej bajtów. Pierwszy replacenie jest częścią pętli, ponieważ powoduje zmianę podwójnego obciążenia sna Stringzamiast zamiast&'static str .

||{let mut s=" 5__5__5
/2\\
1
1
3
\\55    5/
4|  /
4| /
4|/".replace("1","3
|2|");for p in vec![("2"," ",19),("3","-",21),("4"," ",11),("5","_",5)]{s=s.replace(p.0,&p.1.repeat(p.2))}s}

Wypróbuj online!


5

C, 167 bajtów

i;char*d=" q    /()\\   A   |()|    A   |()|    A   \\h#c/  #&|!/   #&| /   #&|/",c,b;main(j){while(c=d[i++],b=c%5==2||c>123?c:c>95?95:c>45?45:c>=32?32:++c,i<47)for(j=c;j-->=b;)putchar(b);}

Wypróbuj online!

Uwaga: wiele widocznych spacji powyżej to tak naprawdę znak tabulacji.

Wersja do odczytu:

i;
char *d = " q   /()\\   A   |()|    A   |()|    A   \\h#c/  #&|!/   #&| /   #&|/", c, b;
main(j) {
    while(
        c = d[i++],
        b = c % 5==2 || c > 123 ? c:
            c > 95 ? 95:
            c > 45 ? 45:
            c >= 32 ? 32:
            ++c,
        i < 47
    )
        for(j = c; j-- >= b;)
            putchar(b);
}

Wyjaśnienie:

Tablica danych d koduje odpowiedź dosłownie pojedynczymi znakami i koduje powtarzane znaki. Każdy znak, c, w tablicy danych jest odwzorowany na znak podstawowy, b i pewną liczbę powtórzeń. Następnie jest drukowany tyle razy.

Znaki używane tylko pojedynczo (ukośniki i potok) mają kody ASCII 47, 92 i 124. Dwa z nich można podzielić przez 5, a pozostałe 2 (c%5=2||c>123) . Nie mogłem znaleźć krótszego warunku do przetestowania dla wszystkich trzech.

Znaki, które są powtarzane (podkreślenie, myślnik i spacja), odpowiednio z kodami ASCII 95, 45 i 32, są kodowane wyższym kodem ASCII - zwiększanym o jeden na powtórzenie. Na przykład pojedyncza spacja jest tylko spacją, ale dwie spacje mogą być kodowane przez następny znak ASCII, wykrzyknik. Tam, gdzie zakodowany znak byłby nieodpowiedni, ponieważ spełnia powyższy warunek modulo, można go podzielić, podobnie jak # i reprezentować jedenaście spacji. Ta sama technika jest stosowana, aby uniknąć nakładania się zakresów znaków spacji i myślnika.

Na koniec dziesięć znaków nowej linii jest kodowanych jako tabulatory, aby zaoszczędzić bajty, które zostałyby wydane na ucieczkę nowego wiersza odwrotnym ukośnikiem, a następnie zwiększane do drukowania ( ++c).


Dobra robota! Wiedziałem, że tam są lepsze odpowiedzi C.
musicman523,

Dzięki! To było zabawne wyzwanie. Spędziłem na tym jakieś cztery godziny, więc cieszę się, że w końcu się udało.
jiv

4

Węgiel drzewny , 49 37 bajtów

↓⁵\…_χ↓↓³↗↗³…_⁵↑/↑⁵↖\←…_¹⁹↓ /F³«P²¹¶¶

Wypróbuj online!

W końcu mogłem trochę zagrać w golfa. Ta odpowiedź (w przeciwieństwie do wszystkich innych odpowiedzi na węgiel drzewny) nie używa odbicia, ale rysuje cały kontur w jednym przejściu, pozostawiając poziome kreski na koniec.

Link do pełnej wersji .


„W przeciwieństwie do wszystkich innych odpowiedzi na węgiel drzewny” Właściwie moja pierwsza odpowiedź również nie zawierała refleksji, ale przyznam, że nie zauważyłem szansy na grę w golfa, zaczynając od lewej linii pionowej. (Tylko inne zmiany pomiędzy naszych rozwiązań jest to, że używasz zakresie, w którym użyłem razy i wydrukować \gdzie właśnie drukowane :UpLeft1 krok.)
Neil

Chociaż wydaje się, że odzwierciedlenie jest do końca ...
Neil

To już dwa razy, że mój klucz nie działał ...
Neil

3

Bubblegum , 40 bajtów

Zaoszczędzono 1 bajt, usuwając końcowy znak nowej linii, dzięki @ovs!

00000000: 5388 c704 5cfa 0a98 2086 4b17 1be0 aac1  S...\... .K.....
00000010: a2b6 860a 6a63 10ee 0129 0333 f4b9 9035  ....jc...).3...5
00000020: 2a28 a0f1 51b9 fa00                      *(..Q...

Wypróbuj online!


Bez końca nowej linii, dostaje 40 bajtów .
ovs

Dzięki! Wydaje mi się, że mój edytor tekstowy automatycznie go włączył.
musicman523

Jak to stworzyłeś? zlib.compress(s.encode(), 9)wyprowadza 46 bajtów, a odpowiedź wydaje się być zlib.
NieDzejkob

Za sugestią Dennisa , użyłem zopfli --deflatedo generowania strumienia surowego DEFLATE, a następnie wykorzystywane xxddo konwertowania go do formatu xxd. Uważam, że zlibpozostawia sumę kontrolną lub nie jest surowym strumieniem DEFLATE z innego powodu.
musicman523

3

Węgiel drzewny , 38 bajtów

←…_χP↑⁵P\F³«↑P¹¹↑»↗¹…_χ‖BM²¦⁷P↓⁴… ⁴↙↙³

Wypróbuj online!

Użyłem odpowiedzi Carlosa w jej oryginalnej formie jako punktu odskoku, ale sporo zaoszczędziłem, używając odbicia, wykorzystując poziomą symetrię. (Symetria w pionie nie było warto, ponieważ podkreślenia skończyło się na niewłaściwym rzędu). Można zobaczyć ewolucję płótna na każdym kroku tutaj .

Oto pełna wersja .


btw możesz użyć, -daby pokazać każdy krok (przepraszam, że tak bardzo zmieniłem węgiel drzewny, nie jestem pewien, czy wiele nowych pomysłów jest bardzo przydatnych, szczególnie wbudowana ascii-sztuka kozy i część haha ​​języka wolfram)
Tylko ASCII,


3

Python 2, 119 117 116 bajtów

print''.join(' \n-/|\\_'[ord(x)/8-4]*int('1245abjl'[ord(x)%8],36)for x in' V(8&H(7(@&@(7(@&@(7(HT"S8(%@!8(%@ 8(%@8')

Wypróbuj online!

Trochę torturowanego kodowania długości…

EDYCJA: Zapisz 3 bajty, zastępując zestaw długości:

[1,2,4,5,10,11,19,21][ord(x)%8]

z

int('1245abjl'[ord(x)%8],36)


Wow! I was trying to think of an effective way to do this myself.
GarethPW

Nice code, but it seems that it is 119 bytes?
mdahmoune

@mdahmoune: Quite right - forgot to use r'' when checking the length...
Chas Brown

3

C++ 11 - 162 159 154 152 150 bytes

MSVC:

void f(){char*i="b t_b\nb/t b\\b\nv-b\nb|t b|b\nv-b\nb|t b|b\nv-b\nb\\k_e f_b/b\nl b|c b/b\nl b|b b/b\nl b|b/";while(*i)cout<<string(*i++-97,*i),i++;}

GCC: (+4 chars)

int f(){char*i="b t_b\nb/t b\\b\nv-b\nb|t b|b\nv-b\nb|t b|b\nv-b\nb\\k_e f_b/b\nl b|c b/b\nl b|b b/b\nl b|b/";while(*i){cout<<string(*i-97,*(i+1));i+=2;}}

Input string i is coded in char pairs:

  1. Count of chars to repeat (added to 'a' to be a legible character)
  2. Char to print

I think, there's still a lot of room for improvement here.

Edit:

  1. Replaced putchar with cout<<
  2. Remove while, Use string constructor to repeat chars
  3. Removed space before pointer and a spurious semi-colon ;;
  4. Compounding instructions with comma, removing braces.

C++11 does not support auto as a return type, that's a C++14 feature. However, you can fix this and save a byte by making the return type int. It doesn't appear that this code works, though; could you test it on Try it online! and see if you can fix it?
musicman523

Changed the return type auto -> void. I was testing on Visual Studio 2017 - automatically C++14. Added a version for gcc.
Robert Andrzejuk

Oh okay, gotcha. I'm running Linux so I don't have VS. Nice job!
musicman523

Hi Robert - your run length encoding approach is similar to my own; see here. I additionally pack each (length,char) pair into a single char instead of 2. There are 7 possible characters, and 8 distinct lengths; so I use the 56 characters in ' '..'X' for encoding; which saves 40 bytes with a little extra overhead for decoding.
Chas Brown


3

R16K1S60 Assembly, 152 144 Bytes

Writes output to screen peripheral the R16K1S60 in ASCII. Runs on The Powder Toy save 2012356. (See link in header for info)

The byte size of the program is the compiled result (Cells Used * 2), not the assembly.

You know you've done well when the logo takes more space than your bytecode.

a:
mov ex, ip
mov ax, .string
mov sp, ip
mov dx, 0x1000
send sp, dx
.loop:
mov bx, [ax]
cmp bx, ip
je .end
cmp bx, ip
je .newline

shr bx, cx, 8
and cx, 0x00FF
.inner:
send sp, cx
sub bx, ex
jnz .inner
.reentry:
add ax, ex
jmp .loop
.newline:
add dx, 0x0020
send sp, dx
jmp .reentry
.string:
dw 0x0120
dw 0x135F
dw 0x000C
dw 0x012F
dw 0x1320
dw 0x015C
dw 0x000C
dw 0x152D
dw 0x000C
dw 0x017C
dw 0x1320
dw 0x017C
dw 0x000C
dw 0x152D
dw 0x000C
dw 0x017C
dw 0x1320
dw 0x017C
dw 0x000C
dw 0x152D
dw 0x000C
dw 0x015C
dw 0x0A5F
dw 0x0420
dw 0x055F
dw 0x012F
dw 0x000C
dw 0x0B20
dw 0x017C
dw 0x0220
dw 0x012F
dw 0x000C
dw 0x0B20
dw 0x017C
dw 0x0120
dw 0x012F
dw 0x000C
dw 0x0B20
dw 0x017C
dw 0x012F
dw 0x0009
.end:
hlt

Explanation

The assembly code above implements a simple compression algorithm, with the words 0x000C being a newline and 0x0009 being the command to stop execution.

The other words are encoded simply, like this: 0xTTCC

  • T: Times to repeat the value

  • C: The ASCII character to print

The ASM uses every register available to it, including some of the less commonly used ones:

  • The Instruction Pointer, to get a few known values into quick recall to save some bytes (A constant value in an instuction that's not just a register uses an extra byte to store it)

  • The Stack Pointer is used as 6th general purpose register, because none of the code uses the stack.

Only AX, BX, CX, and DX are actually used for important data. EX and SP are used to store some constants that get frequently used.

It's somewhat simple, and has nil chance of winning, but it was fun to write!

See revision history for the old answer (It's just as large in terms of ASM)

funfact: if this was measured in words (in the case of the R16K1S60,16 bits) it'd be smaller than the pyth answer, at 72 bytes




2

Mathematica, 163 bytes

Row@Map[Column,Characters/@{" /-|-|-\\   ",r="_ - - -_   ",r,r,r,r,r,r,r,r,r,"_ - - - |||","_ - - -   /","_ - - -  / ","_ - - - /  ",r,r,r,r,r," \\-|-|-/   "},{1}]


2

Python 2, 171 bytes

p,u,q,v,r,s,F=' ','_','/','|','-'*21,'\\',lambda f,m:f+m*19+f;B=lambda n:p*11+v+p*n+q
print'\n'.join([F(p,u),q+p*19+s,r,F(v,p),r,F(v,p),r,s+u*10+p*4+u*5+q,B(2),B(1),B(0)])

Each line is exactly 85 bytes! Hoorah!


2

Zsh, 244 bytes

This is specifically written for Zsh, not Bash, as it allows a bit more in terms of weird syntax.

alias p=printf
function r { p "$1%.s" {0..$2}}
function l { p $1;r $2 19;p $3;p "\n"}
l " " _ " "
l / " " \\
l - - -
l \| " " \|
l - - -
l \| " " \|
l - - -
p \\
r _ 10
r " " 4
r _ 5
p "/\n"
r " " 11
p "|  /\n"
r " " 11
p "| /\n"
r " " 11
p \|/

Note: when I tried to run it on tio.run the output is different than on my terminal. The fix to this is replacing

function r { p "$1%.s" {0..$2}}

with

function r { p "$1%.0s" {0..$2}}

which would make it 245 bytes (link).

Edit Seems like I was too eager to hit that post button and I missed some spaces, making my solution a bit less efficient. My new output seems off though, but I think I counted correctly (but it wouldn't change the length anyway).


Welcome to PPCG! Notice that the lower line of underscores has a gap of four spaces in it, which is missing from the output of your code.
Steadybox

@Steadybox Ohh silly me. I've updated the answer, thanks for pointing it out!
Luca_Scorpion

No problem! Unfortunately, I think it's still a bit off, but this should fix it (and it saves you a byte too!).
Steadybox

I think you can save a few bytes by using 'funcname(){}' instead of 'function funcname{}'
Winny


2

Python 2, 159 153 139 bytes

s=" "*19;e="-"*21;a=" "*9;print" %s\n/%s\\\n%s\n|%s|\n%s\n|%s|\n%s\n\%s    %s/\n%s|  /\n%s| /\n%s|/"%("_"*19,s,e,s,e,s,e,"_"*8,"_"*7,a,a,a)

Try it online!

EDIT: Saved 6 bytes by using % formatting instead of .format().
EDIT: Saved another 14 bytes by fixing the output, thanks to musicman523.


1
This isn't printing the exact text (extra lines are present). Fixing this will probably save some bytes as well.
officialaimm

Here is a fixed version, coming in at a hot 139 bytes
musicman523


1

JavaScript (ES6), 151 bytes

_=>` 2_________
/0\\
1
|0|
1
|0|
1
\\2    _____/
3|  /
3| /
3|/`.replace(/\d/g,a=>a.repeat.call(...[[" ",19],["-",21],["_",10],[" ",11]][a]))

Test Snippet

f=
_=>` 2_________
/0\\
1
|0|
1
|0|
1
\\2    _____/
3|  /
3| /
3|/`.replace(/\d/g,a=>a.repeat.call(...[[" ",19],["-",21],["_",10],[" ",11]][a]))

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



1

Charcoal, 48 bytes

↙¹→P¹¹↓↓¹P¹¹‖B↓¦↘→×¹⁰_M⁷↑←←×¹⁰_‖BJ¹¹¦⁶→×⁴ ↙↙³↑↑³

Try it online!

Somewhat different internals than Carlos's, although not visible at first.


1

,,,, 115 101 98 bytes

I am absolutely ashamed that this is the best I can produce. >.>

"|/
"' 11×:"| /
"⇆:"|  /
"⇆'
'/'_5×' 4×'_10×92c'
'|' 19×'|'
'-21×+++++3×110⇆⊣"\
"' 19×'/'
'_19×' #
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.