Walkers Join! - Alan Walker's logo
Charcoal, 31 30 29 27 bytes
F²«Jι⁰↙χ↖↖⁵↙↙⁵↖↖²P↖χ↙↗χ↘↘¹²
Try it online! Link is to verbose version of code. Sadly Copy
doesn't do what I want in this case, so I have to loop instead. Explanation:
F²«Jι⁰
Draw everything twice, but with the cursor starting one character to the right the second time.
↙χ↖↖⁵↙↙⁵↖↖²P↖χ
Draw the main W from right to left, but leave the cursor near the inverted V.
↙↗χ↘↘¹²
Draw the inverted V.
JavaScript (ES6), 172 139 bytes
let f =
_=>`1
3s1
5o5o
7k9k
9gdg
bchc
d8l8
f48194
h08590
i899
g14d41
n0h05
1p`.replace(/.p?/g,n=>' '.repeat((n=parseInt(n,36))/2)+(c='/\\'[n&1])+c)
O.innerText = f()
<pre id=O>
How?
The logo basically consists of groups of spaces followed by either //
or \\
and line feeds.
Spaces and ending patterns are encoded using base-36 values:
- The least significant bit gives the ending pattern:
0
for//
,1
for\\
. - All other bits give the number of spaces before the ending pattern.
Everything can be encoded this way with a single base-36 digit except the last line which consists of 30 spaces followed by \\
, leading to 30*2+1 = 61 = 1p
in base-36. This p
should be interpreted as 12 spaces followed by \\
but this pattern doesn't appear anywhere. So, we can simply handle this special case at the cost of 2 extra bytes in the regular expression: /.p?/
.
First version, 186 bytes
NB: This one was submitted prior to the logo update.
let f =
_=>[...`WALKER'S`].reduce((s,c)=>(x=s.split(c)).join(x.pop()),`E
ELSRE
'LK'
'LRWLR
WSKS'SK
S ESRLESR
S'KL'K
S 'RKEWR
LEAK'WA
L AKWW
SKERS'RE
L 'ALEA'
LLLS'S ' ER AE\\\\KSALSSA//WSE`)
O.innerText = f()
<pre id=O>
brainfuck, 579 bytes
+++++++++[>+>+++++>+++>++++++++++<<<<-]>+>++>+++++>++..<<<.>>.>..<..............<..>>..<..<<.>>..>..<............<..>..>..<............<..<.>>...>..<..........<..>....>..<..........<..<.>>....>..<........<..>......>..<........<..<.>>.....>..<......<..>........>..<......<..<.>>......>..<....<..>..........>..<....<..<.>>.......>..<..<..>....<..>>..<....>..<..<..<.>>........>..<<..>....<..>..>..<....>..<<..<.>>.........<..>....<..>....>..<....>..<<<.>>........<..>>..<..<..>......>..<..<..>>..<<<.>>...........>..<<..>........>..<<..>..>..<<<.>>..............................>..
Try it online!
Generates the constants 47 92 32 10
in memory, then selects and outputs them as appropriate.