You must construct ASCII Pylons!
PowerShell, 73 bytes
' '*48;46..0|%{" "*$_+-join[char[]](($x=79-$_)..($y=$x+$j++)+(++$y)..$x)}
Try it online!
Outputs the first whitespace-only line, then loops from 46
to 0
. Each iteration, outputs the corresponding number of spaces and then a -join
ed together char
-array of the appropriate symbols, via some calculations.
Charcoal, 13 bytes
E⁴⁸⮌✂γι⊕⊗ι‖O←
Try it online! Link is to verbose version of code. Explanation:
⁴⁸ Literal 48
E Map over implicit range
ι ι Current index
⊗ Doubled
⊕ Incremented
γ Printable ASCII
✂ Slice
⮌ Reverse
Implicitly print each slice on separate lines
‖O← Reflect with overlap
Python 2, 73 bytes
i=48
while i:i-=1;r=range(79-i,127-i*2);print' '*i+bytearray(r+r[-2::-1])
Try it online! Crossposted from anarchy golf (see my submission).
Quick post-mortem analysis: xnor and dianne discovered the exact same solution. ebicochneal submitted a 71 byte solution which mitchs improved to 70 bytes. They avoid dealing with bytearray
(which is long) or ''.join(map(chr,…))
(which is even longer) entirely, by keeping a "current line" variable and cleverly updating it.