Game of Life

Conways Game of Life

Game of Life ist ein, 1970 vom britischen Mathematiker John Horton Conway erfundener, zweidimensionaler, zellulärer Automat. Die Elemente einer zweidimensionalen Matrix können dabei zwei Zustände annehmen: tot oder lebendig. Durch anwenden von Regeln auf die Matrix kann die jeweils nächste Generation bzw. der nächste Zustand der Matrix berechnet werden. Wird die Matrix grafisch dargestellt und zyklisch neu berechnet entsteht der Eindruck eines lebenden Systems.

Regeln

Das Schicksal oder der nächst Zustand einer Zelle hängt bei Game of Life von der Anzahl der lebendigen Nachbarzellen ab. Zum Berechnen der Zustandsänderung wird ein Regelwerk angewandt. Dieses beschreibt bei welcher Anzahl an lebender Nachbarzellen

Eine solche Regel kann mit Hilfe einer Kurzschreibweise ausgedrückt werden. Die Regel 23/3 bedeutet zum Beispiel, dass eine Zelle mit zwei oder drei lebenden Nachbarn die Generation überlebt. In einer toten Zelle mit genau drei lebenden Nachbarn entsteht neues Leben. Bei allen anderen Konstellationen stirbt eine Zelle oder sie bleibt tot. Vor dem Schrägstrich ist also die Überlebensregel notiert, hinterm Schrägstrich die Geburtenregel. Auf diese Weise lassen sich insgesamt 262144 Regeln definieren. Bei der 23/3-Regel handelt es sich um die ursprünglich von Conway verwendete Regel.

Blinker Demo

Die Animation oben illustriert die 23/3-Regel anhand des Blinkers. Dabei handelt es sich um einen Oszillator der periodisch zwischen zwei Zuständen wechselt. Es existieren jedoch auch Oszillatoren mit deutlich längeren Perioden. In den Zellen ist jeweils die Anzahl der lebenden Nachbarn notiert.

Diese Implementierung

Bei dem Demonstrationsprogramm oben handelt es sich um eine einfache Implementierung, die mit Hilfe des JavaScript Frameworks Angular erstellt wurde. Aufgrund des kleinen Spielfeldes wird kein abgefahrener Algorithmus verwendet.
Durch klicken auf eine Zelle kann deren Zustand verändert werden. Bei gedrückter linker Maustaste kann in das Spielfeld gemalt werden. Auf mobilen Geräten mit Touch-Display steht gegenwärtig noch keine solche Funktion zur Verfügung, hier muss jede Zelle einzeln berührt werden.
Unten links befindet sich der Startknopf. Wird dieser betätigt wird in einem einstellbaren Intervall die jeweils nächste Generation berechnet. Auf der rechten Seite befindet sich unten ein runder Button über den ein Einstellungsdialog geöffnet werden kann. Hier können der Interval (0,1 bis 1 Sekunde) und die Regel eingestellt werden. Die Voreingestellt Regel ist 23/3. Die Farbe einer lebenden Zelle hängt von der Anzahl ihrer Lebenden Nachbarn ab. Für jeden lebenden Nachbaren ist die Farbe jeweils ein wenig heller. Im Folgenden wird die Anzahl der Nachbarn in der resultierenden Farbe dargestellt:
0 1 2 3 4 5 6 7 8

Rand

Die Matrix kann man sich als von toten Zellen umgeben vorstellen. Das Verhalten am Rand kann dementsprechend vom Verhalten innen liegender Zellen abweichen.

Weitere Links