스택 교환 파비콘 인쇄


19

도전

아래와 같이 스택 교환 파비콘을 인쇄하거나 반환하십시오.

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

이것은 이므로 각 언어에서 가장 짧은 답변이 이깁니다.


2
왼쪽 상단 모서리가 약간 잘못 정렬 되었습니까?
ETHproductions

@ETHproductions 그것은 구성,하지만 난 지금 변화하고있다. 어느 쪽이든 어색해 보입니다.
musicman523

2
실제 출력은 참조 용으로 219 바이트입니다.
완전히 인간적인

후행 및 / 또는 후행 공백이 허용됩니까?
dzaima

답변:


43

인화점 스크립팅 언어, 263195 바이트

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

작업에 적합한 도구가 아닙니다.

전화 :

hint call f;

산출:

글꼴이 고정 폭이 아니기 때문에 서식이 설정되지 않습니다.


49
도전 과제를보고 "오, Flashpoint 작전에서 대답해야한다"고 생각하는 이유는 무엇입니까?
totallyhuman

7
@totallyhuman 필자는 스크립트 언어를 쓰는 것이 재미 있다고 생각합니다. 몇 가지 단점과 한계가 있으므로 때로는 이상한 해결 방법을 사용해야하므로 흥미롭지 않습니다 (아직 실용적이지는 않습니다).
Steadybox

5
답변을 하드 코딩하면 더 나은 점수를 얻을 수 있습니다.
NieDzejkob

2
@NieDzejkob 이제 출력을 하드 코딩하는 것보다 짧지 만 이전 버전보다 더 지루합니다.
Steadybox

@totallyhuman 그리고 특히이 도전과 더불어, 나는 언어가 어떻게 Kolmogorov- 복잡성 도전 (이상적으로는 그다지 적합하지 않은)을 가지고 있는지 테스트하고 싶었다.
Steadybox

11

, 38 37 33 30 바이트

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

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 편집 : @CarlosAlejo가 반영하지 않고 37 바이트로 실제로 수행 할 수 있음을 보여 주지만 반사를 사용하여 바이트를 저장하도록 관리했습니다. 왼쪽 ¾을 그리고 마지막 ¼을 반영하여 4 바이트를 더 절약했습니다. 편집 : 이전 33 바이트 대답은 ReflectButterflyOverlap()리플렉션으로 겹침 영역을 중복 인쇄하지 않는 것에 달려 있었 으므로이 동작이 변경되면 그에 의존하지 않는 솔루션을 찾았으며 결과는 어쨌든 더 짧았습니다. 어레이 인쇄를 창의적으로 사용합니다. 설명:

←×_χ                            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
아주 잘 연주했습니다. 이 질문에 네 가지 숯불 답변 이있는 것을 좋아합니다 ! ‖BO내가 마지막으로 사용한 언어가 아니 었습니다. 장래를 위해 그 점을 명심해야합니다.
DLosc

"마지막 ¼ 반영"의 의미 를 직접 확인해야했습니다. 잘 연주했다!
Charlie

8

/// , 98 바이트

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

온라인으로 사용해보십시오! 또는 대화식으로보십시오!


3
/// 프로그램의 다른 "단계"를 볼 수있는 유틸리티가 있습니까? (각 교체 후 부분 실행)이를 이해하는 데 도움이 될 수 있습니다.
CAD97

@ CAD97 온라인 인터프리터를 둘러 보았으며 일반적으로 디버그 옵션이 제공되지만 온라인 인터프리터가 인수를 주문하는 방식은 작동하지 않습니다. 통역사 사본을 직접 가져 와서 다음과 같이 할 수 perl slashes.pl -d1 code.txt있습니다. 현재 ///의 온라인 실행 환경에서 작업하고 있지만 시간이 다소 걸릴 수 있습니다.
코너 오브라이언

3
@ CAD97 온라인에서 일이 끝났습니다. 한번보십시오!
코너 오브라이언

8

자바 스크립트 (ES6), (113) 112 바이트

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


교체 기능 전에 길잃은 공간이있는 것 같습니다. 방금 JS 솔루션에 대한 비슷한 업데이트를 113 바이트로 만들었습니다. 게시해야하는지, 아니면 알려야할지 모르겠습니다.
얽히고 설킨

아, 잠깐만, 내가 게시하기 전에 솔루션을 게시 한 것을 보았습니다. 컴퓨터에 도착하면 내 것을 삭제하고로 바이트를 저장할 수 있습니다 replace(/.(\d+)/g,(a,b)=>a[0].repeat(b)).
얽히고 설킨

고마워, 얽히고 설킨 이 유형의 답변을 자동화하는 프로그램을 작성했으며 불필요한 공간을 출력하는 것은 어리 석었습니다. 귀하의 제안 replace진술은 확실히 개선되었으며, 지금은 내 프로그램에 통합되었습니다.
Rick Hitchcock

1
당신은 바이트 배열의 일치를 저장할 수 a: ([a],b)=>a.repeat(b))?
Craig Ayre

예, 감사합니다! 나는 그 구문에 익숙하지 않았다.
Rick Hitchcock

7

SOGL V0.12 , 32 31 바이트

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

여기 사용해보십시오!

설명:

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

분기 :

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

그리고 다른 부분 :

    
|  /
| /
|/

"토 게토"? "구유"? 또한 .설명에서 의미하는 것을 이해 하는 데 약간의 시간이 걸렸습니다 string. 아마도 사용 ^...'하고 "...'?
CalculatorFeline

@CalculatorFeline 나는 보통 ...압축 문자열 (일명 넌센스)에 대해했지만 최근에는 한두 가지 작업을 시작했습니다. 내 실수와 문법을 자유롭게 고치
세요

7

Python 2 , 115 바이트, 더 창의적인 아이디어

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

온라인으로 사용해보십시오!

파이썬 2 , 102 바이트, 지루한 아이디어

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

온라인으로 사용해보십시오!


2
이 방법이 너무 여러 번 사용되는 것을 보았으므로 투표를 중단했습니다. 계속해서 다시 보는 것은 지루합니다.
R. Kap

8
@ R.Kap 더 짧은 방법이 없다면, 그것은 하향 투표를하는 다소 임의적 인 이유입니다.
Dennis

1
@Dennis 어쩌면, 나는 여전히 내 의견을 지키고 그것을 표현할 권리가 있습니다. 나는이 방법이 이러한 종류의 도전에 무수히 많은 시간을 사용하는 것을 보았고 OP 측에서는 창의력이 거의 또는 전혀 필요하지 않다고 생각합니다. .
R. Kap

2
@ R.Kap 범용 압축 알고리즘이 수동 알고리즘을 쉽게 능가 할 수 있다면 그것은 대답이 아니라 도전의 문제입니다. 나는 젤리로 풍선 껌을 이길 수 없었고 젤리는 압축 해제에 거의 오버 헤드가 없었습니다.
Dennis

2
@Dennis 나는 여기서 코드 길이에 대해 이야기하고 있지 않습니다. 나는 노력과 창의성에 대해 이야기하고 있는데,이 답변은 더 많은 것을 할 수있는 언어로 보여주지 못합니다. 이것이 제가 투표 한 이유입니다. 자, 내 추론에 동의하지 않는다면 괜찮습니다. 이 경우 너무 길어지기 전에 여기에서이 대화에 동의하지 않고 종료하기로 합의하십시오. :)
R. Kap


6

C (gcc) 187 바이트

Cody Gray 덕분에 2 바이트를 절약하고 Keyu Gan 덕분에 3 바이트를 절약했습니다!

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

온라인으로 사용해보십시오!


2
puts후행 줄 바꿈이 허용되는 경우 사소하게 짧습니다.
코디 그레이

f()대신 사용할 수 있습니다 main(). 기능도 가능합니다.
Keyu Gan

5

, 181 바이트

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

온라인으로 사용해보십시오!

, 184 바이트

이 버전은 더 replace적은 바이트를 더 추가하여 더 골프화 할 수 있습니다 . 첫 번째 replace는 이중 의무 변경 s을 a String대신 으로 가져 오기 때문에 루프의 일부가 아닙니다 &'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}

온라인으로 사용해보십시오!


5

C, 167 바이트

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

온라인으로 사용해보십시오!

참고 : 위의 많은 공백은 실제로 탭 문자입니다.

읽을 수있는 버전 :

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

설명:

데이터 배열 d는 답을 리터럴 단일 문자와 코드화 된 반복 문자로 인코딩합니다. 데이터 배열의 각 문자 c는 기본 문자 b와 여러 반복에 매핑됩니다. 그런 다음 여러 번 인쇄됩니다.

단독으로 사용되는 문자 (슬래시 및 파이프)에는 ASCII 코드 47, 92 및 124가 있습니다.이 중 2는 5로 나눌 수 있으며 나머지는 2 (c%5=2||c>123)입니다. 세 가지 모두를 테스트하는 더 짧은 조건을 찾을 수 없습니다.

ASCII 코드 95, 45 및 32로 각각 반복되는 문자 (밑줄, 대시 및 공백)는 반복 당 하나씩 증가하는 더 높은 ASCII 코드로 코딩됩니다. 예를 들어, 단일 공백은 단지 공백이지만 다음 ASCII 문자 인 느낌표로 두 공백을 코딩 할 수 있습니다. 코딩 된 문자가 위의 모듈러스 조건을 충족하기 때문에 적합하지 않은 경우, # &와 같이 11 개의 공백을 나타 내기 위해 분할 될 수 있습니다. 공백과 대시 문자 범위 사이의 겹침을 피하기 위해 동일한 기술이 사용됩니다.

마지막으로 10 개의 줄 바꿈은 백 슬래시로 줄 바꿈을 이스케이프 처리하는 데 사용 된 바이트를 저장하기 위해 탭으로 인코딩 된 다음 인쇄를 위해 증가합니다 ( ++c).


잘 했어! 더 나은 C 답변이 있다는 것을 알았습니다.
musicman523

감사! 재미있는 도전이었습니다. 나는 그것에 4 시간 같은 것을 썼다. 그래서 나는 그것이 결국 운동하게되어 기쁘다.
jiv

4

, 49 37 바이트

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

온라인으로 사용해보십시오!

마침내 나는 이것을 조금 골프화 할 수 있었다. 이 답변은 다른 모든 차콜 답변과 달리 반사를 사용하지 않지만 한 번에 모든 윤곽선을 그려서 수평 막대를 남겨 둡니다.

자세한 버전으로 연결합니다 .


"다른 모든 차콜 답변과 달리"사실 첫 번째 답변은 리플렉션을 사용하지 않았지만 왼쪽 세로선으로 그림을 시작하여 1 바이트를 골프를 칠 기회를 얻지 못했다는 것을 인정할 것입니다. (우리 솔루션 사이의 다른 변경 사항은 Times를 사용한 Range를 사용하고 \방금 :UpLeft1 단계 를 인쇄 한 위치 를 인쇄한다는 것입니다.)
Neil

그것은 반영까지가는 길까지 보인다 ...
Neil

또한 s 키가 작동하지 않았으므로 이제 두 번입니다.
Neil

3

풍선 껌 , 40 바이트

@ovs 덕분에 후행 줄 바꿈을 제거하여 1 바이트를 절약했습니다!

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

온라인으로 사용해보십시오!


후행 줄 바꿈이 없으면 40 바이트가 됩니다.
ovs

감사! 내 텍스트 편집기가 자동으로 하나를 넣은 것 같습니다.
musicman523

어떻게 만들었습니까? zlib.compress(s.encode(), 9)46 바이트를 출력하고 대답은 zlib 인 것 같습니다.
NieDzejkob

데니스의 제안 , 내가 사용 zopfli --deflate후, 사용되는 원료 DEFLATE 스트림 생성 xxdxxd 형식으로 변환 할 수 있습니다. 나는 zlib체크섬을 남기거나 다른 이유로 인해 원시 DEFLATE 스트림이 아니라고 생각합니다.
musicman523

3

, 38 바이트

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

온라인으로 사용해보십시오!

나는 Carlos의 답을 원래 형태 로 점프 포인트로 사용했지만 수평 대칭을 이용하여 반사를 사용하여 좋은 결과를 얻었습니다. (밑줄이 잘못된 행에 있었기 때문에 수직 대칭은 그만한 가치가 없었습니다.) 여기서 각 단계 에서 캔버스의 진화를 볼 수 있습니다 .

자세한 버전 은 다음과 같습니다 .


btw 당신은 -d각 단계를 보여주기 위해 사용할 수 있습니다 (미안하지만 숯을 너무 많이 바꿨습니다. 많은 새로운 아이디어가 매우 유용하다는 것을 확신하지 못합니다. 특히 염소 아스키 아트 내장 및 wolfram 언어 haha의 일부)
ASCII 전용


3

파이썬 2 119 117 116 바이트

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

온라인으로 사용해보십시오!

약간의 고문 된 런 렝스 인코딩 ...

편집 : 길이 세트를 바꾸어 3 바이트를 절약하십시오.

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

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


와! 나는 이것을 직접하는 효과적인 방법을 생각하려고했습니다.
GarethPW

좋은 코드이지만 119 바이트 인 것 같습니다.
mdahmoune

@ mdahmoune : 아주 맞아- r''길이를 확인할 때 사용하는 것을 잊었다 ...
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 자)

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

입력 문자열 i은 문자 쌍으로 코딩됩니다.

  1. 반복 할 문자 수 ( 'a'에 추가되어 읽을 수있는 문자 임)
  2. 인쇄 할 문자

여기에는 여전히 개선의 여지가 많다고 생각합니다.

편집하다:

  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×' #
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.