Einführung
Auf der x-Achse befindet sich ein Apfelbaumstamm zwischen -2 und 2, um den herum einige Äpfel herunterfallen:
| |
| |
<-------|---|------->
-2 2
Jeden Tag fallen n Äpfel herunter. Jeder Apfel behält seine x-Koordinate bei, wenn er direkt auf den Boden fällt.
Wenn es jedoch auf einem anderen Apfel landet, rollt es nach den folgenden Regeln, bis es den Boden oder eine tragende Schicht von Äpfeln erreicht:
- Wenn das Feld bei x + 1 in der aktuellen Höhe leer ist, wird der aktuelle Apfel dorthin verschoben.
- Ist das Feld bei x-1 leer, geht der aktuelle Apfel dorthin.
- Ansonsten bleibt der aktuelle Apfel dort, wo er auf dem anderen Apfel liegt.
Herausforderung
Die Eingabe erfolgt in der Reihenfolge der n Startpositionen jedes Apfels. Sie können es als Array oder als getrennte Zahlen oder auf eine andere gültige Art und Weise verwenden. Erklären Sie es einfach in Ihrer Antwort.
Die Ausgabe sollte eine ASCII-Zeichnung des Baumstamms und der Äpfel sein. Sie müssen die x-Achse nicht links vom Apfel ganz links und rechts vom Apfel ganz rechts zeichnen, sondern müssen sie an einer beliebigen Stelle unterhalb eines Apfels zeichnen. Sie können den Baum auch über den höchsten Apfel hinaus verlängern.
Sie können davon ausgehen, dass alle x-Koordinaten zwischen -100 und 100 liegen, jedoch nicht zwischen -2 und 2.
Das ist Code-Golf . Die kürzeste Antwort in Bytes gewinnt!
Beispiele
Eingang: [-3, 5, 5, -4, -4, 5, -3]
Ausgabe:
a| |
aaa| | aaa
---|---|----
Eingang: [3, 3, 3, 3, 8, 9]
Ausgabe:
| |a
| |aaa aa
|---|-------
Eingang: [-5, -5, -5, -5, -5, -5, -5, -5, -5]
Ausgabe:
a | |
aaa | |
aaaaa| |
-----|---|