In dieser Herausforderung erhalten Sie eine Karte eines zweidimensionalen Geländes, von der Seite gesehen. Leider schweben einige Teile des Geländes in der Luft, was bedeutet, dass sie abstürzen. Ihre Aufgabe ist es, vorherzusagen, wo sie landen.
Die Eingabe
Ihre Eingabe besteht aus einer oder mehreren durch Zeilenumbrüche getrennten Zeichenfolgen gleicher Länge, die nur die Zeichen #
(ein Zahlenzeichen , das einen Stein kennzeichnet) oder .
(einen Punkt, das Leerzeichen kennzeichnet) enthalten.
Die Ausgabe
Ihre Ausgabe hat dasselbe Format wie die Eingabe, jedoch mit der folgenden Änderung. Betrachten wir die Eingabezeichenfolge als zweidimensionales Gitter aus Steinen. Jeder Felsen im Eingang, der durch einen Pfad benachbarter Felsen mit dem Boden des Gitters verbunden ist, ist fest ; andere felsen sind lose . Diagonal benachbarte Gesteine gelten nicht als benachbart. Alle losen Steine fallen gerade nach unten und enden als Stapel auf einem festen Stein oder der unteren Reihe. Die losen Steine sind nicht aneinander gebunden, daher fallen sie einzeln nicht als große Formationen aus. Die Ausgabe ist das resultierende Raster.
Beispiele
Die Eingabe
..###. .##.#. .#.... .##.#.
enthält keine losen Steine, daher ist die Ausgabe identisch.
Die Eingabe
...#.. .#..#. .#..## .#...# .##### .#...#
enthält oben einen losen Stein, der auf den festen Stein darunter fällt. Die Ausgabe ist
...... .#..#. .#..## .#.#.# .##### .#...#
Die Eingabe
.#####.... .#....#### ###.###..# #.#...##.. .####..#.# ......###. ..#...#..# ..#...#..#
hat eine große Gruppe von losen Steinen auf der linken Seite. Die Gruppe zerfällt, wenn die Steine fallen, und der Output ist
.......... ....###### ..#.###..# . #...##.. .##....#.. .##...#### ####..#..# #####.#..#
Klarstellungen
- Sie können entweder die Eingabe von STDIN übernehmen und an STDOUT ausgeben oder eine Funktion schreiben.
- Dies ist Code-Golf, also ist das kürzeste Programm (in Bytes) der Gewinner.
- Standardlücken sind nicht zulässig.