# Draw HyperNeutrino's benzene hegaxon icon in ASCII

In celebration of HyperNeutrino getting back his account and rep, following Mr. Xcoder.

Apologies for rotating the picture for drawability.

Print or output this ASCII art exactly. You may have trailing spaces and/or a trailing newline.

      _______________
/               \
/  /           \  \
/  /             \  \
/  /               \  \
/  /                 \  \
/  /                   \  \
\                         /
\                       /
\                     /
\                   /
\  _____________  /
\_______________/


This depicts one of the two resonance structures of the molecule benzene

var QUESTION_ID=128104,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/128104/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>

• I see @HyperNeutrino has since rotated his icon to match this question! – Neil Jun 23 '17 at 23:22
• @Neil Yes :P It bothered me so much that I just changed it to make it consistent. Now you need to update the resonance structures, xnor :P – HyperNeutrino Jun 23 '17 at 23:31
• Darn, the flair won't update even though I added random unused parameters to the end, changed it to StackOverflow, changed it back, and edited another like 10 times :I – HyperNeutrino Jun 23 '17 at 23:34
• But the horizontal version looks ugly when rendered on my profile in my opinion; could just be that I'm not used to it. So, I changed it back. :P – HyperNeutrino Jun 23 '17 at 23:35
• :( I wanted to see! – CalculatorFeline Jun 23 '17 at 23:54

# Charcoal, 23 bytes

×_⁷↙←×_⁸↖⁶→↗⁶Ｐ×_⁸↘↓↙⁵‖Ｂ


Try it online! Explanation: Prints the lines in the following order, then reflects everything horizontally:

      5_______
/
/  6
/  ↙
/  /
↗  /
4  /
\
\
\
\
↖  1→_____
3______←2

• ‖Ｂ stands for "Reflect Butterfly" – CalculatorFeline Jun 23 '17 at 23:40

## JavaScript (ES6),  144 143140138 134 bytes

A recursive function drawing the output character by character with a purely conditional expression.

f=(p=363)=>(m=p%28-14,x=m<0?-m:m,y=p/28|0,p--)?\\/ _
[m+14?x<8-y&y<2|x<8&y>11?3:x==y+8|x==19-y|x==16-y&y>5&x>5?m<0^y>5:2:4]+f(p):''


### How?

For each position 0 < p ≤ 363, we define:

• m = (p MOD 28) - 14
• x = | m |
• y = ⌊ p / 28 ⌋

Below is a breakdown of the formula which picks the appropriate character from [ '\', '/', ' ', '_', '\n' ].

m + 14 ?                            // if this is not an end of line:
x < 8 - y & y < 2 |               //   if this is either part D
x < 8 & y > 11 ?                  //   or part E:
3                               //     output '_'
:                                 //   else:
x == y + 8 |                    //     if this is either part A
x == 19 - y |                   //     or part B
x == 16 - y & y > 5 & x > 5 ?   //     or part C:
m < 0 ^ y > 5                 //       output '/' or '\' depending on the quadrant
:                               //     else:
2                             //       output a space
:                                   // else:
4                                 //   output a Line-Feed


And below are the different parts in the coordinate system defined above:

   | 13 12 11 10 09 08 07 06 05 04 03 02 01 00 01 02 03 04 05 06 07 08 09 10 11 12 13
---+---------------------------------------------------------------------------------
12 | .  .  .  .  .  .  E  E  E  E  E  E  E  E  E  E  E  E  E  E  E  .  .  .  .  .  .
11 | .  .  .  .  .  B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B  .  .  .  .  .
10 | .  .  .  .  B  .  .  C  .  .  .  .  .  .  .  .  .  .  .  C  .  .  B  .  .  .  .
09 | .  .  .  B  .  .  C  .  .  .  .  .  .  .  .  .  .  .  .  .  C  .  .  B  .  .  .
08 | .  .  B  .  .  C  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C  .  .  B  .  .
07 | .  B  .  .  C  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C  .  .  B  .
06 | B  .  .  C  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C  .  .  B
05 | A  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A
04 | .  A  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A  .
03 | .  .  A  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A  .  .
02 | .  .  .  A  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A  .  .  .
01 | .  .  .  .  A  .  .  D  D  D  D  D  D  D  D  D  D  D  D  D  .  .  A  .  .  .  .
00 | .  .  .  .  .  A  D  D  D  D  D  D  D  D  D  D  D  D  D  D  D  A  .  .  .  .  .


### Demo

f=(p=363)=>(m=p%28-14,x=m<0?-m:m,y=p/28|0,p--)?\\/ _
[m+14?x<8-y&y<2|x<8&y>11?3:x==y+8|x==19-y|x==16-y&y>5&x>5?m<0^y>5:2:4]+f(p):''

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

# 05AB1E, 50 bytes

•ι¡≠ït]4uƵŽΣ”9g½ùöèri|)á,ćè’∍é•5B3ÝJ"/ _\"‡4¡.B».∞


Try it online!

The compression:

The strategy here was to build half the object, then mirror the image across the halfway mark. To do this, I first built the left half, with front padding:

11111122222222
111110
11110110
1110110
110110
10110
0110
3
13
113
1113
1111311222222
11111322222222


But no right padding, this is because the .B function in 05AB1E can be used to make every element equal in length using spaces. This allows for me to omit the extraneous spaces to the right and just delimit by newlines. I then, took this pattern, and removed all newlines replacing them with 4 to get:

1111112222222241111104111101104111011041101104101104011043413411341113411113112222222411111322222222


Compressing this with base-255 results in:

•ι¡≠ït]4uƵŽΣ”9g½ùöèri|)á,ćè’∍é•5B


Where the two • is denoting a base-255 compressed string and 5B is converting it to base-5.

The second part, after the compressing:

3ÝJ                # Push '0123'.
"/ _\"          # Push '/ _\'.
‡         # Replace each in b with a on c.
4¡       # Split on 4's (the newlines I replaced).
»    # Join by newlines.
.∞  # Mirror image.

• You could save 3 bytes like this – Emigna Jun 26 '17 at 7:28
• @emigna è, of course! – Magic Octopus Urn Jun 27 '17 at 13:24

# V, 61 bytes

i/  /±¹ \  \
\²µ /6ñGÙlxxhPHÄãxx>ñv$r_jwr w.Gkkl13r_jviwr_jd  Try it online! Hexdump: 00000000: 692f 2020 2fb1 b920 5c20 205c 0a5c b2b5 i/ /.. \ \.\.. 00000010: 202f 1b36 f147 d96c 7878 6850 48c4 e378 /.6.G.lxxhPH..x 00000020: 783e f176 2472 5f6a 7772 2077 2e47 6b6b x>.v$r_jwr w.Gkk
00000030: 6c31 3372 5f6a 7669 7772 5f6a 64         l13r_jviwr_jd


# Python 2, 226213 bytes 179 bytes

My first golf!

b,f,s,u='\/ _'
print'\n'.join([s*6+u*15,s*5+f+s*15+b]+[s*(4-n)+'/ /'+s*(13+2*n)+'\ \\'for n in range(5)]+[s*n+b+s*(25-2*n)+f for n in 0,1,2,3]+[s*4+b+s*2+u*13+s*2+f,s*5+b+u*15+f])


Try it online!

I tried looping the bits that I could find a pattern on, and hardcoded the rest. Setting the different characters to a variable helped save quite a lot of bytes.

Edit: Decided to append to the same array instead of joining multiple times. Saved 13 bytes.

Edit 2: Thanks to @ValueInk, @jacoblaw, @WheatWizard, @CalculatorFeline, and @Challenger5, saved 34 bytes

• b,f,s,u='\/ _';o,a='/ /','\ \\' saves 11 bytes over your current variable initialization! See here – Value Ink Jun 23 '17 at 23:02
• using @ValueInk's tip and not making a list over 4 lines, you have 195 byte like this – jacoblaw Jun 23 '17 at 23:09
• @jacoblaw You don't need all the spaces in that. Here it is without them. – Sriotchilism O'Zaic Jun 23 '17 at 23:31
• o and a are only used once in the code. Here it is with them inlined. – CalculatorFeline Jun 23 '17 at 23:35
• You can use 0,1,2,3 instead of range(4) to save a byte. – Esolanging Fruit Jun 26 '17 at 5:38

# J, 155 bytes

('_ /\',LF){~5#.inv 95x#.32-~3 u:'0_C5NcBe''e2kA/jhk>5y~l<Z:AN<QG)V7m>l"x!@A-jp8E%XEh&"$''j(sP8Z!b#e7})]_,L"LCUu)kqsBQ5_5bt}bq ":1cv(gU;|{I~n5q@(ISCK '[<  Try it online! This is a function that expects no input. E.g., f =: <code> then f ''. ## Explanation I encoded this using the following steps. Assume that the desired compression string is contained in the variable h.  k=:'_ /\',LF NB. the dictionary used to encode the string k i. h NB. numbers corresponding to indices in k 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 4 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 3 1 1 3 4 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 3 4 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 3 4 1 2 1 1 2 1 1 1 ... 5x#.k i. h NB. base 5 to decimal 4571656960356964266407389291886526966074643634545109498506871241033015964671946641835339522170115810676380078148856766959449166714046433431522704650346045752930168245684048485736756807881102718244115576453623363843561553955078139 95#.inv 5x#.k i. h NB. decimal to base 95 16 63 35 21 46 67 34 69 7 69 18 75 33 15 74 72 75 30 21 89 94 76 28 58 26 33 46 28 49 39 9 54 23 77 30 76 2 88 1 32 33 13 74 80 24 37 5 56 37 72 6 2 4 7 74 8 83 48 24 58 1 66 3 69 23 93 9 61 63 12 44 2 44 35 53 85 9 75 81 83 34 49 21 63 21 66 84 93 64 66 8... quote u:32+95#.inv 5x#.k i. h NB. base 95 to ASCII repr of string '0_C5NcBe''e2kA/jhk>5y~ll"x!@A-jp8E%XEh&"$''j(sP8Z!b#e7})]_,L"LCUu)kqsBQ5_5bt}bq ":1cv(gU;|{I~n5q@(ISCK '


Then, we just need to decode this. 5#.inv 95x#.32-~3 u: performs the inverse of what I just described, giving us the list of indices. Then, ('_ /\',LF){~ applies the appropriate characters to each index.

# Mathematica, 227 bytes

t=Table;T[x_,y_,z_,v_]:=""<>{x,y~t~v,z};Column[Join[b={""<>"_"~t~15},{T["/"," ","\\",15]},t[T["/  /"," ","\\  \\",i],{i,11,19,2}],t[T["\\"," ","/",i],{i,25,19,-2}],{T["\\  ","_","  /",13]},{""<>{"\\",b,"/"}}],Alignment->Center]


# Charcoal, 47 43 41 bytes

↗⁶Ｆ¹⁵_↓↘⁶←↙⁶↷⁴↑Ｆ¹⁵_↖⁶Ｍ⁴→↗⁵Ｍ¹¹→↓↘⁵Ｍ⁵↙↑Ｆ¹³_


Try it online!

I did not know a thing about Charcoal until right now, I felt like "I have no idea of what I'm doing" while trying to figure out this answer... I'm quite sure this can be golfed a lot.

• I managed to save 4 bytes learning to use cursor directions and movements!
• 2 more bytes saved after realizing the drawing was not exactly as asked. ^__^U
• Lmao, trust me, you're not the only one to be in the latter state when using charcoal. The first time I used it was trying to make a cube. I used the "square" built-in then manually drew the back of the cuboid, turns out you can do it in 20 bytes compared to my 57. – Magic Octopus Urn Jun 23 '17 at 22:18
• @carusocomputing I cannot believe that O5AB1E or Jelly still have longer answers... :-D – Charlie Jun 23 '17 at 22:24
• Charcoal is an extremely competitive ASCII-oriented language, the optimized answer is likely around 40 bytes which may even obliterate bubblegum. – Magic Octopus Urn Jun 23 '17 at 22:25
• @carusocomputing cough did you say 40? – Neil Jun 23 '17 at 23:06
• @Neil I did try to use ‖Ｂ but I could not figure out how... nice answer! – Charlie Jun 23 '17 at 23:09

# Ruby, 117 bytes

13.times{|i|s=[?_*(15--i%12*1.3),"/%#{i*2+8}s"%?\\,''][(i%12%11+3)/5].center(27)
i>0&&(s[i-=7]=?\\)&&s[~i]=?/
puts s}


# Retina, 129114 102 bytes

Thanks to ovs for -12 bytes!


6eea¶5/15\¶4c1b3c3b2c5b1c7bc9b\25d1\23d2\21d3\19d4\2ee_2d5\eea/
e
aa
d
/¶
c
/2/1
b
\2\¶
a
___
\d+
$*  Try it online! # 05AB1E, 9286 80 bytes '_15×6ú'/5úð8×«.∞5F'/4N-ú'/2ú«ð6N+×«.∞}4F'\Núð13N-×«.∞}'\4ú'_7×2ú«.∞'\5ú'_8×«.∞»  Try it online! ## Explanation in parts The bar at the top '_ # underscore 15× # repeated 15 times 6ú # with 6 spaces in front  The line immediately below the bar '/ # forward slash 5ú # with 5 spaces in front ð # space 8× # repeated 8 times « # concatenated with the earlier string .∞ # intersected mirror (i.e middle space not affected) # mirroring: " / " => " / \ "  The remainder of the upper portion of the hexagon 5F # for N in 0..4 '/ # forward slash 4N- # 4 - N ú # spaces in front of the slash '/ # another forward slash 2ú # with 2 spaces in front « # concatenated with the other string ð # a space character 6N+ # N + 6 × # times « # concatenated with the other string .∞ # intersected mirror } # end for  The remainder except for the last 2 lines 4F # for N in 0 .. 3 '\ # backslash Nú # with N spaces in front ð # a space 13N- # 13 - N × # repeated « # concatenated with other string .∞ # intersected mirror } # end for  The second to last line '\ # backslash 4ú # with 4 spaces in front '_ # underscore 7× # repeated 7 times 2ú # with 2 spaces in front « # concatenated with earlier string .∞ # intersected mirror  The last line '\ # backslash 5ú # with 5 spaces in front '_ # underscore 8× # repeated 8 times « # concatenated with other string .∞ # intersected mirror  The » at the end joins everything on newlines. • @carusocomputing: hmm, I didn't think of "mirroring" it. – Neil A. Jun 23 '17 at 21:56 • Mirror is like palindromize, except with palindromize {_ becomes {_{, where with mirror it becomes {_}. Palendromize is û, while mirror is ∞. There is also an intersected mirror, which is .∞. – Magic Octopus Urn Jun 23 '17 at 22:04 • @downvoter stoppit. He said he's still golfing it. – Magic Octopus Urn Jun 23 '17 at 22:19 # C#, 210 199 bytes Encodes the length of space runs and underscore runs: var h=@"5KL4/>\L3/1/:\1\L2/1/<\1\L1/1/>\1\L0/1/@\1\L/1/B\1\L\H/L0\F/L1\D/L2\B/L3\1I1/L4\K/L";for(var i='M';--i>'/';)h=h.Replace(""+i,i>75?"\n":"".PadLeft(i>72?i-60:i-47," _"[i/73]));Console.Write(h);  Ungolfed: var h = @"5KL4/>\L3/1/:\1\L2/1/<\1\L1/1/>\1\L0/1/@\1\L/1/B\1\L\H/L0\F/L1\D/L2\B/L3\1I1/L4\K/L"; for (var i = 'M'; --i > '/'; ) h = h.Replace("" + i, i > 75 ? "\n" : "".PadLeft(i > 72 ? i - 60 : i - 47, " _"[i / 73])); Console.Write(h);  Try It Online! # Retina, 129 bytes  5$* ¶
\G (?=( *))
¶$1/ /$11$*$\  \
r(?<=( *)) \G
$1\$'19$*$'/¶
^
6$* 15$*_¶5$* /15$* \
¶$¶ \ 13$*_  /¶5$* \15$*_/


Try it online! Completely different approach, yet coincidentally the same length!

# ///, 152 bytes

/,/  //'/\\!!!//&/\\"\\
//%/\/"\/!!//#/_____//"/,\\//!/,, /! ###
!\/!!!\\
,"% \& "% "&"%!\& \%!"&\%!,"&\'!!\/
\'! "/
"'! \/
"',"/
,"\,##___"/
!\\###\/


Try it online!

# MATL, 58 55 bytes

'/__\ '7XyP9BY+3l7:14&(6Xy_3TF_5M&(&v0'Zj'(t2&P_h)[]9Z(


Try it online!

# Pyth, 111 bytes

J\/K\\+*6d*15\_+++*5dJ*15dKV5+++*-5hNd"/  /"*+yN11d+++KddK)V4+++*NdK*-25yNdJ)+++++*4dK*2d*13\_*2dJ+++*5dK*15\_J


This code basically prints the lines one after another (in the naive way of doing it). Yeah it sucks, but right now I'm in no state of doing better, and I too still wanted to pay tribute to HyperNeutrino.

Try it online!

# PHP, 122 bytes

<?=gzinflate(base64_decode("ddDBDQAgCEPRO1N0AxYicf8tFK2JIPT4HycA34iTHRVxJqwvGLvme8LXrxRAKoVmBZypoMNFjbmUtMEl/OV2WHqYTg"));


Try it online!

# PHP, 158 bytes

for(;~$c='f000 e/o1d/b/k\b1c/b/m\b1b/b/o\b1a/b/q\b1/b/s\b1\y/ a\w/ b\u/ c\s/ d\b00___b/ e\000/'[$i++];)echo$c>_?str_pad("",ord($c)^96):strtr($c,[_____,"\ "]);  Try it online! # PHP, 165 bytes <?=strtr("5566666 57/3334 5 13552513352713332 13355 213335 2433335 0 433355 0743333054333505 476666_ 057466666/",[" / ","/ /","\ \ "," ","\\"," ",___," "]);  Try it online! # SOGL V0.12, 53 52 bytes /↕Υ¦‛¾}¼Pσ↕ΗΦ▒∙⌠N►4┼ΥjΠ⌡jOT?»m,┌∆Χ⁶↑┌≠Γ‽‼║%Ν□‘7«n╬⁷  Try it Here! # Python 2, 187 bytes a=int("7YSUQZDJS0I3J2QJ40G9WNPIRBTBC1KF0F3X5WDMBW8CG5BVDHBJQ71V3UHCSY3TR8LC4IIEE5SZ",36)[:-1] for i in"0666666_!6__!5/!3\\!9\n!844!422!211!1 ".split("!"):a=a.replace(i[0],i[1:]) print a  Try it online! # C# (.NET Core), 169 bytes var d=new char[364];for(int i=10;i-->0;)for(int j="ppnggffggn"[i]-97;j-->0;)d[28*"amlhbccbha"[i]+"ggh{fguva|"[i]-2813+j*("b|~}"[i/3]-97)]="_/\\\n"[i/3];Console.Write(d);  Ungolfed: var d = new char[364]; for (int i = 10; i-- > 0; ) for (int j = "ppnggffggn"[i] - 97; j-- > 0; ) d[28 * "amlhbccbha"[i] + "ggh{fguva|"[i] - 2813 + j * ("b|~}"[i / 3] - 97)] = "_/\\\n"[i / 3]; Console.Write(d);  For each stroke I encoded the start position, length, character used, and direction within various strings. I saved a few bytes by grouping up similar strokes. Sadly, this prints a little weird in tio. This is because I'm not printing out real spaces. Looks fine in my console, though. So probably this submission doesn't count. Here's the link anyways. Try it online! (fake spaces 169 bytes) Try it online! (real spaces 191 bytes) # Python 2, 154 138 bytes print'eNp10MEJAEEIA8C/VaSDNBTY/rtYlByci+aZER8BMqcnqiR6FG7/IPd87w0c/pQMYBrFJmxhQDstljJSQUrb5euhZzBe6PI3aQ=='.decode('base64').decode('zip')  Try it online! # Paintbrush, 43 bytes, non-competing 13→'_8×←↓s/5{↙s/3→s/3←}↓'\6×↘↑'_8×→↖'_7×←▕┣  ### Explanation 13→'_8×←↓s/5{↙s/3→s/3←}↓'\6×↘↑'_8×→↖'_7×←▕┣ Program 13→ Move the pointer 13 spaces right '_ Push '_' onto the stack 8× Multiply it 8 times ← Draw out '________' moving to the left ↓ Move down s/ Set that cell to a slash 5{ } Execute function 5 times ↙ Move the pointer one spot down and one spot to the left s/ Set that cell to a slash 3→ Move 3 spaces right s/ Set that cell to a slash 3← Move 3 spaces left ↓ Move down '\ Push r'\' 6× Multiply it 6 times ↘ Draw out r'\\\\\\' moving down-right ↑ Move up '_ Push '_' 8× Multiply it 8 times → Draw out '________' moving to the right ↖ Move the pointer one spot up and one spot to the right '_ Push '_' 7× Multiply it 7 times ←▕┣ Draw out '_______' moving to the left ▕ Remove the rightmost column ┣ Mirror the entire grid to the right, overlapping the inner column, flipping some characters that have backwards variants  Beta Testing in the Real World: Charcoal: 1 Paintbrush: 0  Gotta make a lot of improvements, huh. :P • And user themself posts a solution! – Value Ink Jul 14 '17 at 2:18 • @ValueInk It's about time, huh? :P – HyperNeutrino Jul 14 '17 at 2:19 # Bubblegum, 67 54 bytes 00000000: 55c9 310d 0040 0804 c1fe 55e0 0043 24f8 U.1..@....U..C$.
00000010: 77f1 c955 cc96 3b95 d65e 6697 4d76 0b93  w..U..;..^f.Mv..
00000020: cf06 f847 0448 d1e6 0ceb 5722 8421 1010  ...G.H....W".!..
00000030: d95b 7e60 ad3f                           .[~.?


Try it online!

# C (gcc), 200 bytes

char o[28];i,j,k,p;f(){for(k=0;k<39;puts(o))for(memset(o,k&&k<32?32:95,27),i=3;i--;k++)for(j=3;j--;o[24-i*3+j]=" _\\/"[p])o[i*3+2-j]=" _/\\"[p="U@@@B@HH@@@BB@HH@@@p@@L@@C@p@EL@UC@"[k]-64>>j*2&3];}
`

Try it online!