| Bytes | Lang | Time | Link |
|---|---|---|---|
| 071 | Vyxal 3 j | 240904T144509Z | pacman25 |
| 074 | 05AB1E | 240506T080301Z | Kevin Cr |
| 120 | Ruby | 240505T014637Z | Level Ri |
| 053 | Charcoal | 240504T201031Z | Neil |
Vyxal 3 j, 71 bytes
"ᵇḟ}₇Ḟ≠[ḃṖᵉṖΩḂΦᴿ-^4ϩṙḂṖ=q₂$↑=TỌ₂⊻¥∥»ΦB1Ṛ⌐ɾḄᵏᵂᵞ↑Ḟ¿uȦ₈≤“12ykD"[=])+("⊻i6÷
Similar compression trick, but the lines constant and some compression advantages save a few bytes
05AB1E, 74 bytes
•2%jи
Aß#™`@¬:¨úëH±ç†∍{Þθ¶@M/Š[cmγ¾?N¨‹}ÚŦaoé€-èα¤ÆÖÑMÓ•"_ \/|
-[=])+("Åв
Outputs as a list of characters.
Try it online. (The J in the footer is to join all characters together to a single string. Feel free to remove it to see the actual result.)
Explanation:
Compressing the entire thing (using the default ASCII-art compression technique) seems to be the shortest..
•2%jи\nAß#™`@¬:¨úëH±ç†∍{Þθ¶@M/Š[cmγ¾?N¨‹}ÚŦaoé€-èα¤ÆÖÑMÓ•
# Push compressed integer 5469072357431047243168628920623877613141385035707549597465492997649394965642722070200968674642555323502935338931850326894978849043270
"_ \/|\n-[=])+(" # Push this string
Åв # Convert the large integer to this custom base,
# basically converting it to base-length, and indexing into the string
# (after which the list of characters is output implicitly as result)
See this 05AB1E tip of mine (section How to compress large integers?) to understand why •2%jи\nAß#™`@¬:¨úëH±ç†∍{Þθ¶@M/Š[cmγ¾?N¨‹}ÚŦaoé€-èα¤ÆÖÑMÓ• is 5469072357431047243168628920623877613141385035707549597465492997649394965642722070200968674642555323502935338931850326894978849043270.
Ruby, 122 120 bytes
-3.upto(2){|j|puts (k=j.abs)<1?'|--[=| (+) [=|-[]-|':'`D;:>hXQQQYVV`D;:>f'.bytes.map{|i|'| _\/ _'[i*6/6**k%6*k/j]}*''}
This prints the centre row as a literal, and uses two slightly different base-6 encodings for the upper and lower rows as follows
Upper Lower
0 | |
1 _ space
2 space space
3 space _
4 / \
5 \ /
This is the same length as the output, so it just beats the "print the literal" solution. It can probably be shortened a bit, but printing the literal with a few naive substitutions might be a shorter approach.
Charcoal, 53 bytes
“ HX⁵⌊ω#⊘δ⌈L¿≦ M”‖MC¹³¦⁰M²↑-[=M²↑“ ↙~⌕EF℅≔?⌊Σ⁵À⌈Xζ“2~
Try it online! Link is to verbose version of code. Explanation:
“ HX⁵⌊ω#⊘δ⌈L¿≦ M”
Draw the left half of the outside of a wing using a compressed string.
‖M
Reflect to complete the wing.
C¹³¦⁰
Copy it to the other wing.
M²↑-[=
Change the left wing to be an inside view.
M²↑“ ↙~⌕EF℅≔?⌊Σ⁵À⌈Xζ“2~
Draw the body using a compressed string.