Stewies Spiel des Lebens und der Müdigkeit ist dem bekannteren Spiel des Lebens von Conway ziemlich ähnlich .
Das Universum des Stewie-Spiels für Leben und Müdigkeit (GoLF) ist ein unendliches zweidimensionales orthogonales Gitter quadratischer Zellen, von denen sich jede in einem von drei möglichen Zuständen befindet, lebendig, tot oder müde. Jede Zelle interagiert mit ihren acht Nachbarn, dh den Zellen, die horizontal, vertikal oder diagonal benachbart sind. Zu jedem Zeitpunkt treten folgende Übergänge auf:
- Jede lebende Zelle mit weniger als zwei lebenden Nachbarn stirbt, als ob sie durch Unterbevölkerung verursacht würde.
- Jede lebende Zelle mit zwei oder drei lebenden Nachbarn lebt für die nächste Generation weiter.
- Jede lebende Zelle mit mehr als drei lebenden Nachbarn stirbt wie durch Überbevölkerung.
- Jede tote Zelle mit genau drei lebenden Nachbarn wird wie durch Reproduktion zu einer lebenden Zelle.
- Jede Zelle, die seit zwei aufeinanderfolgenden Generationen lebt, stirbt wie durch Müdigkeit. Es kann erst in der nächsten Generation wieder zum Leben erwachen
- Jede Zelle, die sich außerhalb der Grenze des Eingangsgitters befindet, ist tot, als wäre sie von einer Klippe gefallen.
Herausforderung:
Ihre Herausforderung besteht darin, ein Raster mit Dimensionen n-mal-m zu nehmen, das den Anfangszustand eines GoLF und eine ganze Zahl p darstellt , und den Zustand des Spiels nach p Generationen auszugeben .
Regeln:
- Eingabe- und Ausgabeformate sind optional, aber die Eingabe- / Ausgabegitter sollten dieselbe Darstellung haben
- Sie können beliebige druckbare Symbole auswählen, um lebende und tote Zellen darzustellen (ich verwende sie
1
für lebende Zellen und0
für tote Zellen). - Sie können wählen, ob Sie 0 oder 1 indiziert haben. In den Beispielen
p=1
bedeutet der Zustand nach einem Schritt. - Der kürzeste Code in jeder Sprache gewinnt
- Eingebaute Funktionen für die zellulare Automatisierung sind zulässig
Testfälle:
In den Beispielen habe ich nur das Eingaberaster in die Eingabe aufgenommen, nicht p . Ich habe Ausgänge für verschiedene p- Werte bereitgestellt . Sie dürfen nur das Raster ausgeben, das zu einem bestimmten Eingang p gehört .
Input:
0 0 0 0 0
0 0 1 0 0
0 0 1 0 0
0 0 1 0 0
0 0 0 0 0
--- Output ---
p = 1
0 0 0 0 0
0 0 0 0 0
0 1 1 1 0
0 0 0 0 0
0 0 0 0 0
p = 2
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
p = 3 -> All dead
---
Input:
0 1 0 0 0 0
0 0 1 0 0 0
1 1 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
--- Output ---
p = 1
0 0 0 0 0 0
1 0 1 0 0 0
0 1 1 0 0 0
0 1 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
p = 2
0 0 0 0 0 0
0 0 0 0 0 0
1 0 0 0 0 0
0 1 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
p = 3
0 0 0 0 0 0
0 0 0 0 0 0
0 1 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
p = 4 -> All dead
Input
0 1 1 0 1 1 0
1 1 0 1 1 1 1
0 1 0 0 0 1 0
0 0 0 1 1 0 1
1 0 0 1 0 1 1
0 0 1 1 0 1 1
1 1 0 0 0 0 1
--- Output ---
p = 1
1 1 1 0 0 0 1
1 0 0 1 0 0 1
1 1 0 0 0 0 0
0 0 1 1 0 0 1
0 0 0 0 0 0 0
1 0 1 1 0 0 0
0 1 1 0 0 1 1
p = 2
1 0 0 0 0 0 0
0 0 0 0 0 0 0
1 0 0 1 0 0 0
0 1 1 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 1 1 0 0 0
p = 3
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 1 0 0 0 0
1 1 0 0 0 0 0
0 1 1 0 0 0 0
0 0 1 0 0 0 0
0 0 0 0 0 0 0
p = 4
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 1 1 0 0 0 0
1 0 0 0 0 0 0
1 0 1 0 0 0 0
0 1 1 0 0 0 0
0 0 0 0 0 0 0
p = 5
0 0 0 0 0 0 0
0 1 0 0 0 0 0
1 0 0 0 0 0 0
0 0 1 0 0 0 0
1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
p = 6
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 1 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
p = 7
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 1 1 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
p = 8
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
p = 9 -> All dead
Ja, ich bin mir bewusst, dass alle anfänglichen Samen nicht dazu führen, dass alle Zellen tot sind.