Gymnasium Marktbreit/Wissenschaftswoche 2024/11aMatheInfo/Arbeitsgruppe 2/Conways Spiel des Lebens

Aus ZUM Projektwiki

Einführung

Das "Game of Life" (Spiel des Lebens) ist ein zellulärer Automat, der 1970 von dem Mathematiker John Horton Conway entwickelt wurde. Das Spielfeld besteht aus einer zweidimensionalen Gitterfläche, auf der jede Zelle entweder "lebendig" oder "tot" ist. Der Zustand jeder Zelle in der nächsten Generation hängt von den Zuständen ihrer acht benachbarten Zellen ab. [1]

Spiel

Spiel selbst ausprobieren

Regeln

Das Spiel folgt insgesamt 4 Regeln.

1. Wenn eine Zelle 1 oder 0 Nachbarn hat, stirbt sie, sozusagen an Unterpopulation.

2. Wenn eine Zelle 4 oder mehr Nachbarn hat, stirbt sie, sozusagen an Überpopulation.

3. Wenn eine Zelle 2 oder 3 Nachbarn hat, überlebt sie.

4. Jedes Quadrat, welches 3 Nachbarn hat und noch unbelebt ist, wird zu einer Zelle.[2]

Strukturen

Diese Regeln führen zu einer Vielzahl von Mustern und Strukturen, die über zellulare Generationen hinweg auf dem Gitter erscheinen können. Einige Muster bleiben stabil, manche oszillieren zwischen verschiedenen Zuständen, andere bewegen sich über die Spielfläche und wieder andere verschwinden gänzlich.

Beispiele für die verscheidenen Muster:

Stabil

Eine 2x2 Formation, die sich nicht verändert









Oszillierend

Eine 3x1 Formation, die oszilliert








Bewegend

Ein sog. "glider", der sich diagonal bewegt








Verschwindend

Eine 1x1 Formation, die verschwindet








Einblick in die Programmierung

Das in Python geschriebene Programm basiert auf der library "pygame" und die Konvertierung zu einer .exe-Datei erfolgte mithilfe von "cx_Freeze". Wenn das Programm ausgeführt wird, werden folgende Schritte getätigt:

1. Eine Generation aus einer zufälligen Anzahl von Quadraten an zufälligen Orten im Koordinatensystem wird erstellt.

2. Sobald der Nutzer das Spiel per Leertaste gestartet hat, wird in Intervallen von je ca. 1s ein Algorithmus mit folgenden Aktionen durchgeführt:

  1. Es wird eine Liste aller lebenden Zellen erstellt und zu jeder Zelle die zugehörigen Nachbarn ausfindig gemacht.
  2. Auf Grundlage der Anzahl der lebenden Nachbarn wird dann entschieden, ob eine Zelle im nächsten Zyklus weiterleben wird oder stirbt.
  3. Jetzt werden die einzelnen Nachbarn der lebenden Zellen examiniert und gegebenenfalls zum Leben erweckt, wenn sie die 4. Regel erfüllen.
  4. Die Liste mit den "neuen" Zellen, die sich sozusagen bewiesen haben, wird als Ergebnis des Algorithmus an das Programm weitergegeben.[3]

3. Die zufällige Auswahl einer Zahl zwischen 0 und 255 für jeweils den Rot-, Grün, und Blauwert der Färbung einer lebenden Zelle ist für die Vielzahl verschiedener Farben verantwortlich.


Quellenangaben