4
\$\begingroup\$

I recently watched The Wizard Of Oz and thought that when Dorothy taps her shoes together three times, it would be easier if she used a program to do it. So let's help her.

Task

Output slippers being tapped together 3 times.

Output

Slippers being tapped together. A pair of slippers not being tapped looks like this:

  __.....__                   __.....__
 / ,------.\                 /.------, \
(  \        \               /        /  )
\  \      ___\             /___      /  /
 \  \   ,'  __`.         .´__  ',   /  /
  \  `.'  ='  `=\       /=´  '=  '.´  /
   `.  `.        \     /        .´  .´
     `.  `.       \   /       .´  .´
       `.  `-.___.'\ /'.___.-´  .´
         `-._      / \      _.-´
             `----'   '----´

And a pair being tapped together looks like this:

         __.....__     __.....__
        /.------, \   / ,------.\
       /        /  ) (  \        \
      /___      /  / \  \      ___\
    .´__  ',   /  /   \  \   ,'  __`.
   /=´  '=  '.´  /     \  `.'  ='  `=\
  /        .´  .´       `.  `.        \
 /       .´  .´           `.  `.       \
/'.___.-´  .´               `.  `-.___.'\
\      _.-´                   `-._      /
 '----´                           `----'

Basically, output

  __.....__                   __.....__
 / ,------.\                 /.------, \
(  \        \               /        /  )
\  \      ___\             /___      /  /
 \  \   ,'  __`.         .´__  ',   /  /
  \  `.'  ='  `=\       /=´  '=  '.´  /
   `.  `.        \     /        .´  .´
     `.  `.       \   /       .´  .´
       `.  `-.___.'\ /'.___.-´  .´
         `-._      / \      _.-´
             `----'   '----´

         __.....__     __.....__
        /.------, \   / ,------.\
       /        /  ) (  \        \
      /___      /  / \  \      ___\
    .´__  ',   /  /   \  \   ,'  __`.
   /=´  '=  '.´  /     \  `.'  ='  `=\
  /        .´  .´       `.  `.        \
 /       .´  .´           `.  `.       \
/'.___.-´  .´               `.  `-.___.'\
\      _.-´                   `-._      /
 '----´                           `----'

  __.....__                   __.....__
 / ,------.\                 /.------, \
(  \        \               /        /  )
\  \      ___\             /___      /  /
 \  \   ,'  __`.         .´__  ',   /  /
  \  `.'  ='  `=\       /=´  '=  '.´  /
   `.  `.        \     /        .´  .´
     `.  `.       \   /       .´  .´
       `.  `-.___.'\ /'.___.-´  .´
         `-._      / \      _.-´
             `----'   '----´

         __.....__     __.....__
        /.------, \   / ,------.\
       /        /  ) (  \        \
      /___      /  / \  \      ___\
    .´__  ',   /  /   \  \   ,'  __`.
   /=´  '=  '.´  /     \  `.'  ='  `=\
  /        .´  .´       `.  `.        \
 /       .´  .´           `.  `.       \
/'.___.-´  .´               `.  `-.___.'\
\      _.-´                   `-._      /
 '----´                           `----'

  __.....__                   __.....__
 / ,------.\                 /.------, \
(  \        \               /        /  )
\  \      ___\             /___      /  /
 \  \   ,'  __`.         .´__  ',   /  /
  \  `.'  ='  `=\       /=´  '=  '.´  /
   `.  `.        \     /        .´  .´
     `.  `.       \   /       .´  .´
       `.  `-.___.'\ /'.___.-´  .´
         `-._      / \      _.-´
             `----'   '----´

         __.....__     __.....__
        /.------, \   / ,------.\
       /        /  ) (  \        \
      /___      /  / \  \      ___\
    .´__  ',   /  /   \  \   ,'  __`.
   /=´  '=  '.´  /     \  `.'  ='  `=\
  /        .´  .´       `.  `.        \
 /       .´  .´           `.  `.       \
/'.___.-´  .´               `.  `-.___.'\
\      _.-´                   `-._      /
 '----´                           `----'

For reference, the characters used are

_-.,/\()='`´

Rules

  • The output can have an optional leading/trailing whitespace
  • While not explicitly banned, builtins detract from the competition, so please don't post an answer which is simply a single builtin*
  • This is a so shortest code in characters wins. Characters is chosen due to the use of a multibyte character.

* For all you killjoys out there, this rule is intended for comedic effect and shouldn't be taken literally

\$\endgroup\$
5
  • \$\begingroup\$ does leading whitespace include extra spaces before each line (as long as they are the same amount everywhere)? \$\endgroup\$
    – dzaima
    Commented Sep 5, 2017 at 18:59
  • \$\begingroup\$ @dzaima Yes, I'll allow that. \$\endgroup\$ Commented Sep 5, 2017 at 19:11
  • \$\begingroup\$ Are you missing the last untap from your output? \$\endgroup\$ Commented Sep 5, 2017 at 19:12
  • \$\begingroup\$ @EngineerToast no, sorry, the structure part was left over from the sandbox. \$\endgroup\$ Commented Sep 5, 2017 at 19:18
  • \$\begingroup\$ ´ makes me sad. \$\endgroup\$ Commented Sep 6, 2017 at 11:35

9 Answers 9

8
\$\begingroup\$

SOGL V0.12, 113 110 108 characters

░╗╬)λ]cw╚╥Æ⁄║RL↓κΟiRDΨ℮≠3*s4sφ¡┐rκ⁾žχ&ν3.ΦƧ⁴ty¬`OΗΒ%Τz׀PΥω╤8⅟∆KΣ⅜4⅔⅝⁰?Z+pķcE□L6⁵/4γ⁽Κ¹‘▓:±↔Ζ`´ŗ⁴@┼⁴┼≥@┼;┼+3∙

Try it Here!

Explanation:

...‘                       push a compressed string of one slipper (one as the top left one) with a leading newline
    ▓                      convert from a multiline string to an array of lines
     :                     dulplicate a copy for reversing horizontally
      ±↔                   reverse horizontally
        Ζ`´ŗ               replace ` with ´
            ⁴              create a copy of the original slipper for the untapped part
             @┼            append a line of spaces after it horizontally
               ⁴┼          append horizontally a copy of the reversed slipper
                 ≥         move this - the untapped version - to the botton of the stack
                  @┼       append a space after the reversed slipper
                    ;┼     append the original slipper after it
                      +    join the two vertically together
                       3∙  multiply vertically three times
\$\endgroup\$
5
\$\begingroup\$

Charcoal, 165 127 bytes

F´´`«‖TP⪫⪪”}∧≕I3⁼wX¿↔?⁺⊖?◧χêIr﹪≦⎈X⊞c_⁹jEτTCεh⌊Y﹪YY}φ⬤»[↷¢|nX;IζCHE⁷RrCsd~¢_⊖⦄⎚§⌈▷φS¤Iv}›RPx!∧⁵F]üC”`ι»C⁴²¦⁰C²¹¦¹²T⁴²¦²⁴F²C⁰¦²⁴

Try it online! Verbose approximation (I don't know how to write ´ in Verbose mode). Explanation:

F´´`«

Loop twice, once with ´, once with `.

‖T

Reflect the canvas, transforming the characters, except for the above two, which is why they are special-cased. Note that this causes the right slipper to end up on the left, which is actually correct for the second row.

⪫⪪””`ι»

Print the compressed slipper string, but with `s replaced with the loop character. (Note that the compressed string includes left padding; this means that the reflected string from the first iteration doesn't touch the second string.)

C⁴²¦⁰

The right slipper is in the wrong place on the canvas, so copy it to the correct place. (This also makes an extra copy of the left slipper.)

C²¹¦¹²

The second row also needs a copy of the pair of slippers, but this is the same way around as they were originally created. (Actually both pairs get copied, so we now have eight slippers.)

T⁴²¦²⁴

Delete all unnecessary extra slippers, leaving two rows of two slippers.

F²C⁰¦²⁴

Make two additional vertical duplicates of the whole thing.

\$\endgroup\$
1
  • \$\begingroup\$ It doesn't mirror because I don't consider them as opposites, not sure if it would be more useful if they mirrored \$\endgroup\$
    – ASCII-only
    Commented Sep 7, 2017 at 1:52
4
\$\begingroup\$

Bash + Common Utilities (268 265 258 Bytes)

Saved a few bytes thanks to Justin Mariner

Bash (31 21 Bytes)

gzip -d w;cat w w w

Additional File named w (237 Bytes) (Base64 Encoded so I can paste it here)

H4sICIT6rlkAA3cAbZFbDsQgCEX/WQV/ziQWV+BOTOgiu4JZ2YAWhVYSGxpOfNyDyExazPiuOQMsmIe1F5YoTHK2OCDOIEnWVzzhTYBZo5oYbuOkAXwRnNS9qTJ0e9SMOVJKneScFXWWW3bUn+XcFUWaack6krsxav2DH5QP8LaHNcxG7wkMSYUsOSenc8oIHYAy0ExRYxKCl5ByZtZLrG0ZrzZA9eSvohU54RwQUGa7CTgFEX7OIf2XhTsMveQvSeYBO9j3Rpglf2PrHgCR75Y6zgCrwGfJczBuZjgy1c1QH8Af0NuE5gAwAA

This might be seen as cheating, and I kind of agree :P.

\$\endgroup\$
1
  • 3
    \$\begingroup\$ Could you do cat w w w instead of three cats? \$\endgroup\$ Commented Sep 6, 2017 at 17:13
3
\$\begingroup\$

PowerShell, 575 bytes 553 551 characters

$a="3__.....__222 __.....__
 / ,1.\2233 /.1, \
(3\23\223 /23/3)
\3\2___\22 /___2/3/
 \3\3 ,'3__0.23 .´__3',3 /3/
3\30.'3='30=\2 /=´3'=3'.´3/
3 0.30.23\33 /23.´3.´
33 0.30.2 \3 /2 .´3.´
2 0.30-.___.'\ /'.___.-´3.´
23 0-._2/ \2_.-´
22 0----'3 '----´

23 __.....__33 __.....__
23/.1, \3 / ,1.\
2 /23/3) (3\23\
2/___2/3/ \3\2___\
33.´__3',3 /3/3 \3\3 ,'3__0.
3 /=´3'=3'.´3/33 \30.'3='30=\
3/23.´3.´2 0.30.23\
 /2 .´3.´233 0.30.2 \
/'.___.-´3.´223 0.30-.___.'\
\2_.-´222 0-._2/
 '----´22223 0----'"
0..3|%{$a=$a-replace$_,('`','------',333,'  ')[$_]}
,$a*3

Try it online!

Simple repeated character replacement. Edit - saved two characters by using $a and looping the replace commands.

\$\endgroup\$
2
  • \$\begingroup\$ Remember, it's scored by characters, not bytes. \$\endgroup\$ Commented Sep 6, 2017 at 0:33
  • \$\begingroup\$ @ConorO'Brien Ah, thanks. I missed that. \$\endgroup\$ Commented Sep 6, 2017 at 12:30
2
\$\begingroup\$

05AB1E, 140 bytes

"_ ./,-\)'´="•3₅Cæ¶ÿâsΣkÞ₂ÏÕ›|Y=ß°«:ws^N5%ÖΩjĆR["DĀó©›tعoÜ™¾týǝàZ½aÕL.sΔÊÑû8&+››₄|wεŠ8ε¼áNsHÑŽJнi'`³Ö!èÆžIIƵò•11вèJ20ô∞¶¡ε2ä`"´"'`:‚}6FíD»,

Try it online!

Explanation

"_ ./,-\)'´="                                   # push this string
             •...•                              # push a base-255 compressed number
                  11в                           # convert to a list of base-11 numbers
                     èJ                         # index into the string with these and join
                       20ô                      # split in pieces of size 20
                          ∞                     # mirror, giving us a pair of shoes 
                                                # both using the char "´"
                           ¶¡                   # split on newlines
                             ε                  # apply to each row
                              2ä`               # split in 2 pieces on stack
                                 "´"'`:         # replace "´" with "`" in the 2nd string
                                       ‚        # pair them up
                                        }       # end apply
                                         6F     # 6 times do
                                           í    # reverse each
                                            D», # print a copy joined on space and newline
\$\endgroup\$
2
\$\begingroup\$

Python 2, 328 326 316 bytes

s=[''.join(' '*int(c)if'/'<c<':'else c for c in l)for l in r"2__.....__9 1/1,------.\8 (2\8\7 \2\6___\6 1\2\3,'2__`.4 2\2`.'2='2`=\3 3`.2`.8\2 5`.2`.7\1 7`.2`-.___.'\ 9`-._6/ 94`----'1 0".split()]
r=[''.join(dict(zip("`/\\(","\xb4\\/)")).get(c,c)for c in l[::-1])for l in s]
for a,b in(zip(s,r)+zip(r,s))*3:print a,b

Try it online!

\$\endgroup\$
1
  • \$\begingroup\$ 327 bytes \$\endgroup\$
    – Simon
    Commented Sep 6, 2017 at 11:05
2
\$\begingroup\$

Python 2, 495 468 bytes

r,R,s,a,b=str.replace,range(12),str.split,"/(`","\\)\xb4";A=B=r(r("  __.....__8 @ / ,------.#8@(  #8#       @#  #      ___#      @ #  #   ,'  __`.    @  #  `.'  ='  `=#   @   `.  `.8#  @     `.  `.       # @       `.  `-.___.'#@8 `-._      /@"+" "*13+"`----' @","#","\\"),"8"," "*8)
for _ in(0,1,2):B=r(r(r(B,a[_],"*"),b[_],a[_]),"*",b[_])
A,B,j=s(A,"@"),[_[::-1]for _ in s(B,"@")],"\n".join
for _ in"*"*3:print j(j(" ".join((A[_],B[_])[::p])for _ in R)for p in(1,-1))

Try it online!

Excited to read Mathematica 12's update notes. (SlippersTapped@3 only requires 16 bytes!)

\$\endgroup\$
2
\$\begingroup\$

Bubblegum, 219 bytes

00000000: ec93 d1c9 8630 0c00 df33 c5bd e5ff 419b  .....0...3....A.
00000010: 09dc a410 8774 0227 fb34 a0d4 9011 7aa0  .....t.'.4....z.
00000020: 147a 88e4 08b8 b71b 7732 c39d 602c 6bd0  .z......w2..`,k.
00000030: 3a19 6b6b b0d0 e50f 5e21 9b36 1cfe a5bf  :.kk....^!.6....
00000040: 82bb 7f55 73f7 d734 2154 5814 dcf7 c643  ...Us..4!TX....C
00000050: 3b0f 77d0 e531 c3db 9bc2 a6b0 6f1d 02db  ;.w..1......o...
00000060: ce03 7403 6de7 11e6 ed11 cff8 b336 7c3a  ..t.m........6|:
00000070: 5e02 490d d30a ed15 d7e6 ee4d 3ba6 715a  ^.I........M;.qZ
00000080: 9344 2804 4627 082d 8cc1 ba50 40ef c375  .D(.F'[email protected]
00000090: 2b90 cba4 4e45 1218 e349 d582 4f35 a922  +...NE...I..O5."
000000a0: f0cd 25d5 f821 9792 6af6 00b9 9314 a327  ..%..!..j......'
000000b0: c899 042b bda2 93a4 f933 905b c990 2189  ...+.....3.[..!.
000000c0: b998 3c3d c8e4 7422 30f7 6bee d7dc afb9  ..<=..t"0.k.....
000000d0: 5f73 bfe6 7efd 36e4 f217 00              _s..~.6....

Try it online!

Format: DEFLATE
Maximum attempted iterations: 10000
Decompressing iterations: 1019

\$\endgroup\$
1
\$\begingroup\$

JavaScript, 455 bytes

for(_="  Y#YXY WWWV#VU---T.TT, S ,TT.R__QW/PQ_O/OWPY/N%.Y%MM-.O.'L%-._WPK.´JJYJI#0H-´G/'.O.GYJFJQY',PY/EV DX#W,'YQ%.C/=´Y'=Y'JY/BX%.'Y='Y%=#AD @Q.....Q?@ >Y?>> ?0 /R#>@/SH(Y#@#>WP@/Y)0XUO#>W N0 C>E0YADB0WM.@[email protected]#PDI0DL# F0>K U_.G0>W %T-'W'TG0>?WY?0@/S#PRHD/@/Y) (Y#@HVN XUOHW EWC0WBWYA0Y/@IDM.@H /DI>YM.DHF>VLHU_.G>> K0 'TG>>>%T-'0";G=/[>-Y]/.exec(_);)with(_.split(G))_=join(shift());f=a=>_.replace(/./g,a=>`\\\`
`['#%0'.indexOf(a)]||a).repeat(3)

Try it online!

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.