Ein abelscher Sandhaufen ist für unsere Zwecke ein unendliches Gitter mit ganzzahligen Koordinaten, anfangs ohne Sand. Nach jeder Sekunde wird ein Sandkorn bei (0,0) platziert. Wenn eine Gitterzelle 4 oder mehr Sandkörner enthält, wird gleichzeitig ein Sandkorn auf jeden der vier Nachbarn verschüttet. Die Nachbarn von (x, y) sind (x-1, y), (x + 1, y), (x, y-1) und (x, y + 1).
Wenn eine Zelle verschüttet wird, kann dies dazu führen, dass ihre Nachbarn verschüttet werden. Einige Fakten:
- Diese Kaskade wird irgendwann aufhören.
- Die Reihenfolge, in der die Zellen verschüttet werden, spielt keine Rolle. Das Ergebnis wird dasselbe sein.
Beispiel
Nach 3 Sekunden sieht das Raster so aus
.....
.....
..3..
.....
.....
Nach 4 Sekunden:
.....
..1..
.1.1.
..1..
.....
Nach 15 Sekunden:
.....
..3..
.333.
..3..
.....
Und nach 16 Sekunden:
..1..
.212.
11.11
.212.
..1..
Die Herausforderung
Schreiben Sie in möglichst wenigen Bytes eine Funktion, die eine einzelne positive ganze Zahl t annimmt und nach t Sekunden ein Bild des Sandstapels ausgibt .
Eingang
Eine einzelne positive ganze Zahl t in einem beliebigen Format.
Ausgabe
Ein Bild des Sandhaufens nach t Sekunden unter Verwendung der Zeichen
. 1 2 3
Bearbeiten: Verwenden Sie vier beliebige Zeichen oder zeichnen Sie ein Bild. Wenn Sie nicht ".123" oder "0123" verwenden, geben Sie in Ihrer Antwort an, was die Zeichen bedeuten.
Anders als in den Beispielen sollte Ihre Ausgabe die minimale Anzahl von Zeilen und Spalten enthalten, die erforderlich sind, um den Teil des Sandstapels ungleich Null anzuzeigen.
Das heißt, für Eingang 3 sollte der Ausgang sein
3
Für 4 sollte die Ausgabe sein
.1.
1.1
.1.
Wertung
Es gilt die Standardgolfwertung.
Regeln
Es sind keine Sprachfunktionen oder Bibliotheken erlaubt, die bereits wissen, was ein Sandhaufen ist.
Bearbeiten: Der Ausgabebereich wurde bearbeitet, die Zeichensatzbeschränkung wurde vollständig aufgehoben. Verwenden Sie vier verschiedene Zeichen oder Farben, die Sie mögen.
.
für leere Zellen zu haben ? Können wir 0
eine gültige leere Zelle haben?
0
? Was ist dann die Ausgabe?