Gymnasium Marktbreit/Wissenschaftswoche 2024/11aMatheInfo/Arbeitsgruppe 2/Conways Spiel des Lebens
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
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
Oszillierend
Bewegend
Verschwindend
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:
- Es wird eine Liste aller lebenden Zellen erstellt und zu jeder Zelle die zugehörigen Nachbarn ausfindig gemacht.
- Auf Grundlage der Anzahl der lebenden Nachbarn wird dann entschieden, ob eine Zelle im nächsten Zyklus weiterleben wird oder stirbt.
- Jetzt werden die einzelnen Nachbarn der lebenden Zellen examiniert und gegebenenfalls zum Leben erweckt, wenn sie die 4. Regel erfüllen.
- Die Liste mit den "neuen" Zellen, die sich sozusagen bewiesen haben, wird als Ergebnis des Algorithmus an das Programm weitergegeben.[3]
3. Eine 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.