»Game of Life«

Sich selbst reproduzierende Muster.

»Game of Life« Joachim Christ


John Conway entwickelte 1969 einen algorithmmus, der auf faszinierende Weise verschiedene Muster verändert und es so erscheinen lässt, als ob sich diese Muster bewegen oder gar “leben”.

Das Spielfeld
Die Spielregeln
Beispiele
Variationen

Das Spielfeld

Das Spielfeld dieser spielerischen Simulation von Leben besteht aus einem zwei-dimensionalen zellulären Automaten.

Die einzelnen Elemente des Spielfeldes sind Zellen, die zwei Zustände einnehmen können (“lebend” oder “tot”).

Theoretisch ist das Spielfeld in beiden Dimensionen unendlich groß. Die hier vorgestellte Umsetzung ist jedoch von der Größe eingeschränkt.

Das Spielfeld wird initial mit einem Muster besetzt. Dies stellt die 0. Generation dar. Die nächste Generation berechnet sich aufgrund vorgegebener Regeln aus der aktuellen Generation. Dazu werden für jede Zelle simultan die acht Nachbarzellen betrachtet und abhängig von der Anzahl lebender Zellen entsteht neues Leben oder altes Leben stirbt ab.

Die Spielregeln

Folgende Regeln werden simultan auf alle Zellen angewendet:

  • Eine tote Zelle mit genau drei lebenden Nachbarn wird “geboren”.

     → 

  • Eine lebende Zelle mit weniger als zwei lebenden Nachbarn “stirbt”.

     → 

  • Eine lebende Zelle mit zwei oder drei lebenden Nachbarn bleibt in der Folgegeneration “am Leben”.

     → 

  • Eine lebende Zelle mit mehr als drei lebenden Nachbarn “stirbt” in der Folgegeneration.

     → 

  • Mit diesen vier einfachen Regeln kann aus gegebenen Anfangsmustern im Laufe des Spiels eine Vielfalt komplexer Strukturen entstehen. Es gibt statische Strukturen, die sich von einer zur nächsten Generation nicht ändern, andere oszillieren, indem sie nach einer endlichen Anzahl Generationen wieder wie ursprünglich vorliegen, wieder andere wachsen oder vergehen. Manche Strukturen bewegen sich orthogonal oder diagonal auf dem Spielfeld fort, indem sie aufgrund der Regeln verschobene Kopien von sich selbst erzeugen.

    Beispiele

     

    Block     
    Beehive     
    Blinker     Generation 
    Pulsar     Generation 
    Reflector     Generation 
    Glider     Demo 
    Spaceship     Demo 

    Variationen

    Variationen des Game of Life ergeben sich, wenn man das Verhalten am Rand des Spielfeldes abändert.

  • Der nicht sichtbare Teil des Spielfeldes wird als “permanent lebend” angesehen. Dadurch ergibt sich eine “Reflektion” von sich bewegenden Mustern.

  • Der nicht sichtbare Teil des Spielfeldes wird als “permanent tot” angesehen. Dadurch lösen sich bewegende Muster am Rand auf.

  • Das Spielfeld wird angesehen, als sei es an den Rändern in sich selbst gekrümmt. D. h., der rechte Rand wird angesehen als sei er direkt an den linken Rand angrenzend. Analog wird der obere Rand als an den unteren Rand angrenzend angesehen. Das Spielfeld stellt also eine flache Abbildung einer Kugeloberfläche dar. Diese Variante ist umgesetzt.

  • Neben dem angezeigten Spielfeld erweitert sich das Feld in allen Richtungen um einen nicht angezeigten Teil. In dieser Variante wird so viel zusätzlicher Platz benötigt wie das größte sich bewegende Muster breit bzw. hoch ist. So entsteht der Eindruck, dass sich die Objekte aus dem Spielfeld heraus bewegen.

  • Höhere Anforderungen an die Berechnung der Generationen ergeben sich, wenn der angezeigte Teil als Fenster auf die unendliche Spielfläche angesehen wird, das sich mit sich bewegenden Objekten mitverschiebt, und immer einen relevanten Teil anzeigt. Diese Variante stösst auf Herausforderungen, wenn es sich in entgegengesetzte Richtungen bewegende Objekte geben sollte.

  • Neben diesen Variationen bezüglich des Verhaltens am Spielfeldrand können Zellen hexagonal geformt sein oder die Überlebensregeln als solche werden modifiziert.


    Mithilfe der Maus können Zellen gesetzt oder geleert werden: Setze/ Lösche Zelle  •  Zeichne Block  •  Zeichne Beehive  •  Zeichne Blinker  •  Zeichne Blinker-Pulsar  •  Zeichne 4 Blinker  •  Zeichne Pulsar  •  Zeichne Reflector  •  Zeichne Glider  •  Zeichne inversen Glider  •  Zeichne Spaceship  •  Zeichne inverses Spaceship  •  Leere alles

    Das Kommando Generation erzeugt die nächste Generation.

    Das Kommando Evolution zeigt die fortschreitenden Änderungen während mehrerer Generationen. Das Kommando Zeitraffer zeigt die Evolution im Zeitraffer. Das Kommando Stopp beendet die Evolution.

    Voriger Beitrag Nächster Beitrag