Dans ce défi, vous obtenez une carte d'un terrain à deux dimensions, vu de côté. Malheureusement, certaines parties du terrain flottent dans l'air, ce qui signifie qu'elles vont s'écraser. Votre travail consiste à prédire où ils atterriront.
L'entrée
Votre entrée est une ou plusieurs chaînes séparées par des retours à la ligne de longueurs égales, contenant uniquement les caractères #
(un signe numérique, signifiant un rocher) ou .
(un point, signifiant un espace vide).
Le résultat
Votre sortie a le même format que l'entrée, mais avec la modification suivante. Voyons la chaîne d'entrée comme une grille de roches à deux dimensions. Chaque roche dans l'entrée qui est reliée au bas de la grille par un chemin de roches adjacentes est ferme ; d'autres roches sont lâches . Les roches adjacentes en diagonale ne sont pas considérées comme adjacentes. Toutes les roches lâches tomberont directement vers le bas et finiront comme une pile au-dessus d'une roche ferme ou de la rangée inférieure. Les roches lâches ne sont pas attachées les unes aux autres, elles tombent donc individuellement, pas comme de grosses formations. La sortie est la grille résultante.
Exemples
L'entrée
..###. .##.#. .#.... .##.#.
ne contient pas de roches en vrac, donc la sortie est identique à celle-ci.
L'entrée
...#.. .#..#. .#..## .#...# .##### .#...#
contient une roche meuble en haut, qui tombe sur la roche ferme en dessous. La sortie est
...... .#..#. .#..## .#.#.# .##### .#...#
L'entrée
.#####.... .#....#### ###.###..# #.#...##.. .####..#.# ......###. ..#...#..# ..#...#..#
a un grand groupe de roches lâches sur la gauche. Le groupe tombe en panne lorsque les rochers tombent, donc la sortie est
.......... ....###### ..#.###..# . #...##.. .##....#.. .##...#### ####..#..# #####.#..#
Clarifications
- Vous pouvez soit prendre l'entrée de STDIN et la sortie vers STDOUT, soit écrire une fonction.
- C'est le code-golf, donc le programme le plus court (en octets) est le gagnant.
- Les failles standard ne sont pas autorisées.