Desafío
Dada una cuadrícula rectangular de caracteres ascii imprimibles como una cadena o mediante una entrada estándar, escriba una función o programa que contraiga los caracteres no espaciales en una pila en la parte inferior.
Las normas:
- La salida tiene las mismas dimensiones y caracteres que la entrada.
- Un carácter no espacial en
(row a,column b)no puede tener un carácter espacial' 'en(a-1, b),(a-1,b-1)o(a-1,b+1), donde las filas están numeradas desde la parte inferior. Esto tiene la consecuencia de que todas las pilas verticales deberían colapsar de lado. - Un personaje no espacial puede viajar en la mayoría de los
(initial height - final height)lugares hacia la izquierda o hacia la derecha (ver Fig. 1). - Puede suponer que la imagen tiene suficiente espacio para colapsar sin que los caracteres se caigan de la pantalla.
Figura 1: posibles ubicaciones finales para los caracteres @#$mostrados como x,y,z, respectivamente.
..............
...@..........
..xxx.........
.xxxxx...#....
xxxxxxx.yyy.$.
El orden en que colapsan los personajes se puede elegir libremente. Los espacios finales no están bien, pero las nuevas líneas finales sí.
Este es el código de golf , por lo que gana la respuesta más corta en bytes.
Ejemplo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
Una salida posible:
--(_
/----|/|(o_)
/|/~\---~\\/o)
..."Have*you~mooed~today?"...



