Coffee Machine Machine

CoffeeScript, 219 bytes

Thanks to @totallyhuman for saving 4 bytes!

#{s="|      |"} \\   -   /
#{t="|  ||  |"}  \\  -  /
#{t}     X
#{s}    ___
#{s}   / - \\
|______|  /  -  \\
| ____ | /_______\\
||____|           |

Try it online!

SOGL V0.12, 78 bytes

≈p⁽.*%θ|»Y?v▼mB8█[=ρļiρKτ¾Γb    2⁴⅟┼¤Μ╬(׀⁾⌠○Yyλ{╝<-³|k¤↑E*UH∙æ¹ΘNσx↔§÷πm‛⁾ņμ׀⁴@≤‘

Try it Here!

SOGL compression beats bubblegum!

Befunge, 166 162 bytes

:0  /\|_-37X.v"vvvv{vvvvg:::>=:@:G>f>f:=|:G>f>fv`vUg:j:>::N>::f::"<
g1+2%+56:-*49<[email protected]#:,g1/+56,

Try it online!


This is using a fairly simple compression scheme where every two characters are encoded into a pair as a base 11 number.

We start by translating the characters into indices in a lookup table to minimise their size - this gives us one index in the range 0 to 11, and a second in the range 0 to 8. These indices are combined into a single number as n = i1 + i2*11. We then add a additional offset to translate that number into the range of printable ASCII characters, so it can be stored in a Befunge string.

When decoding we just perform this process in reverse. We subtract the offset, split the value into two parts with i1 = n%11 and i2 = n/11, and then lookup those indices in the translation table to obtain the final characters to output.

Bonus Coffee Mug

v",6jvvvvvguvk:::"   <
>"jHvvvs>?vqg[@:P"   v
v"vJ>::f:P|[gvvv>"   <
>"::f::>N::>:j:gU"   v
v"f>f:=|:G>f>fv`v"   <
>">G:@:=>:::gvvvv"   v
:0 X/\|_-37X.v"vvvv{"<

Try it online!