Sfida
Data una griglia rettangolare di caratteri ASCII stampabili come stringa o tramite input standard, scrivere una funzione o un programma che comprime i caratteri non spaziali in una pila sul fondo.
Le regole:
- L'output ha le stesse dimensioni e caratteri dell'input.
- Un personaggio non spaziale in
(row a,column b)non può avere un carattere spaziale' 'in(a-1, b),(a-1,b-1)o(a-1,b+1), dove le righe sono numerate dal più in basso. Ciò ha la conseguenza che tutte le pile verticali dovrebbero crollare lateralmente. - Un personaggio non spaziale può viaggiare nella maggior parte dei
(initial height - final height)posti a sinistra o a destra (vedi Fig. 1). - Puoi presumere che l'immagine abbia abbastanza spazio per crollare senza che i personaggi cadano dallo schermo.
Figura 1: possibili posizioni finali per i personaggi @#$mostrati come x,y,z, rispettivamente.
..............
...@..........
..xxx.........
.xxxxx...#....
xxxxxxx.yyy.$.
L'ordine in cui i personaggi collassano può essere scelto liberamente. Gli spazi finali non vanno bene, ma lo sono le nuove righe finali.
Questo è code-golf , quindi vince la risposta più breve in byte!
Esempio
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
Un possibile output:
--(_
/----|/|(o_)
/|/~\---~\\/o)
..."Have*you~mooed~today?"...



