Javascript
 

 Convay's Game of Life

Auf dieser Seite können Sie die Lebenssimulation "Convay's Game of Life" in verschiedenen Varianten starten. Näheres zur Bedienung lesen Sie in der Anleitung unten.

Klicken Sie auf Orte des Lebensraums, um dort die Lebens[F]orm     entstehen zu lassen!
Berechnungsdauer des letzten Generationenschritts:  sec Anzahl lebende Zellen: 

Max. Anzahl [G]enerationen:
[M]onitor

Lebensraumdarstellung:

Zusätzliche [W]artezeit zwischen den Generationen:  msec
Dynamische Lebensraumvergrößerung [A]bbrechen bei: Zellen
Zellengröße: Pixel [B]reit Pixel [H]och
Lebensraumgröße: S[P]alten [Z]eilen

Regelwerk:

[R]andbedingung:

Anzahl lebende Nachbarn: [0] [1] [2] [3] [4] [5] [6] [7] [8]
Zelle lebt ggf. weiter
Neue Zelle wird geboren


Anleitung

Überblick

Bei dieser Simulation geht es darum, die Entwicklung von Leben zu beobachten. Dabei sind sowohl das Leben selbst als auch die Bedingungen, wie Leben entsteht und vergeht, stark vereinfacht: "Leben" wird repräsentiert durch Zellen, die zwei verschiedene Farben für die Zustände lebend und tot haben können. Das Entstehen und Vergehen des Lebens hängen in dieser Simulation nur davon ab, wie viele lebende Nachbarn eine Zelle hat. Man könnte also von einer rein soziologischen Simulation sprechen. Die Zahl der Nachbarn jeder Zelle wird bei einem Generationsschritt für alle Zellen gleichzeitig festgestellt und daraus wird abgeleitet, welche Zellen in der nächsten Generation leben.

Detaillierte Informationen über Entstehung und Varianten dieses "Game of Life" finden sich bei Wikipedia.

Bedienung

Allgemeines

Sie erreichen jedes Eingabefeld außer mit der Maus auch mit Hilfe einer Tastenkombination. Dazu ist bei der Beschriftung der Felder und Schaltflächen immer ein Buchstabe in [eckigen Klammern] geschrieben. Drücken Sie die Taste [Alt] und diesen Buchstaben gleichzeitig und Sie gelangen zu dem entsprechenden Eingabefeld. Unten befindet sich außerdem eine vollständige Liste aller Tastenkombinationen.

Grundsätzlich können Sie auch während die Simulation läuft Eingaben machen: Sie können wie unten beschrieben neue Lebensformen hinzufügen sowie die Randbedingung und das Regelwerk ändern. Sogar die Einstellungen für Zellen- und Lebensraumgröße lassen sich während der Simulation ändern. Die Änderungen wirken sich im jeweils nächsten Generationsschritt aus.
Will man die Wirkung bestimmter Einstellungen beobachten, ist es natürlich nicht sinnvoll, diese während der Simulation zu ändern.

Lebensraum und Lebensformen

Beim Laden der Seite erscheint ein "Lebensraum", bestehend aus 150 Zellen, die in 10 Zeilen à 15 Spalten angeordnet sind.
Durch Klicken auf diesen Lebensraum lassen sich einzelne Zellen oder Zellformationen vor dem Start der Simulation zum Leben erwecken.
Welche Formation beim Klicken geboren wird, lässt sich in dem Auswahlfeld Lebens[F]orm, das Sie auch durch Drücken der Tastenkombination [Alt]+[ F ] erreichen, einstellen.
In Klammern hinter der Bezeichnung steht jeweils die Ausdehnung der Figuren. Die Zelle auf die man klickt, bildet immer die obere Linke Ecke dieses Bereichs, egal ob diese Zelle der Figur lebt oder nicht.
Sollten die Figuren den Rand des Lebensraums überschreiten, hängt der Effekt, den ein Klick hat, von der ausgewählten Randbdingung ab (siehe dort!).
Die angebotenen Lebensformen entstammen vorwiegend dem o.g. Wikipedia-Artikel.
Näher eingehen möchte ich hier nur auf folgende Besonderheiten:

Einzelwesen (1x1) − toggle Bei dieser Auswahl wird eine einzelne Zelle geboren, wenn die Zelle, auf die Sie klicken, tot ist.
Lebt sie, wird diese Zelle durch den Klick getötet.
Außer der Schaltfläche Alles lösche[N] (s.u.) ist dies die einzige Möglichkeit, lebende Zellen außerhalb der Simulation wieder zu entfernen.
zufällige Verteilung (1x1) Haben Sie diese Lebensform ausgewählt, ist es unerheblich, auf welche Zelle Sie klicken. Der Klickt dient nur dazu, die zufällige Verteilung einer bestimmten Anzahl Lebewesen auszulösen.
Sobald Sie geklickt haben, werden Sie aufgefordert, die Anzahl Lebewesen einzugeben, die verteilt werden soll. Diese Eingabe wird als Prozentwert der Lebensraumgröße gemacht. Beispiel: Der Lebensraum ist 150 Zellen groß. Wenn Sie 20 eingeben, wird 30 Mal ein Lebewesen zufällig platziert.
Sollte die Auswahl auf eine schon lebende Zelle fallen, wird sie nicht wiederholt, so dass auch wenn Sie 100 eingeben, tote Zellen übrig bleiben.

Alles löschen [C]

Diese Schaltfläche setzt alle Zellen des Lebensraums in den Zustand tot. Außerdem wird die Maximale Anzahl [G]enerationen (s. entsprechenden Abschnitt!) auf 20 zurückgesetzt.

Berechnungsdauer

Dieses Feld ist nur ein Ausgabefeld und zeigt an, wie lange die Berechnung der letzten Generation gedauert hat.
Grundsätzlich steigt die Rechenzeit mit der Fläche des Lebensraums.

Anzahl lebende Zellen

Dieses Feld ist nur ein Ausgabefeld und zeigt an, wie Zellen in der aktuellen Generation leben.

Max. Anzahl [G]enerationen

Hier können Sie eingeben, über wie viele Generationen die Simulation laufen soll.
Während der Simulation wird hier angezeigt, wie viele Generationen die Simulation noch läuft.

[M]onitor

Wenn Sie dieses Kontrollkästchen aktivieren, wird beim Start der Simulation ein weiteres Fenster geöffnet, in das während der Simulation folgende Daten geschrieben werden:

Da die Lebensraumfläche der wesentliche, Rechenzeit bestimmende Parameter ist, ist diese Funktion natürlich vor allem im Zusammenhang mit der Randbedingung dynamische Lebensraumvergrößerung interessant.
Im Einzelschrittmodus wird das Kontrollkästchen ignoriert und kein Log geschrieben.

[S]tarten

Startet den Simulationslauf für die eingestellte Anzahl Generationen (s.o.).

Einzelschritt [U]

Simuliert genau einen Generationsschritt.

S[T]opp!

Setzt - auch während der Simulation - die Anzahl zu simulierender Generationen auf Null und bricht dadurch einen Simulationslauf ab.
Je nach Zeitpunkt im Programmablauf kann der Simulationszähler danach -1 anzeigen.

Wartezeit

Das Eingabefeld Zusätzliche [W]artezeit zwischen den Generationen ist auf meinem Rechner ziemlich überflüssig, aber vielleicht haben Sie einen so schnellen Computer, dass Sie den Verlauf der Simulation etwas langsamer haben möchten. Dazu können Sie in diesem Feld eine Zeit in Millisekunden eingeben, die zusätzlich zur Rechenzeit gewartet wird, bevor die nächste Generation angezeigt wird.

Anzahl [N]achbarn anzeigen

Diese Funktion diente ursprünglich der Fehlersuche; weil sie ganz nett ist, habe ich sie nicht entfernt. Man kann sich damit für jede Zelle des Lebensraums die Anzahl ihrer lebenden Nachbarn anzeigen lassen. Die Darstellung erfolgt als übersichtliche Tabelle in einem neuen Fenster.

Dynamische Lebensraumvergrößerung [A]bbrechen

Im Auswahlfeld Randbedingung lässt sich einstellen, dass sich der Lebensraum sich automatisch vergrößert, wenn eine lebende Zelle an den Rand gerät. Da die Berechnungszeit einer Generation wesentlich von der Größe des Lebensraums abhängt, kann man hier eine maximale Fläche angeben, bei der die dynamische Erweiterung abgebrochen wird. Bei Überschreiten dieser Grenze schaltet die Simulation automatisch auf die Randbedingung alle Randzellen sind immer tot um.

Zellengröße

Mit Hilfe dieser beiden Eingabefelder kann die Darstellung der Zellen auf dem Bildschirm vergrößert oder verkleinert werden.
Breite und Höhe einer Zelle werden in Pixel eingegeben.
Probieren Sie ggf. aus, welches Werteverhältnis quadratische Zellen erzeugt.
Die Änderung der Darstellung wird erst durchgeführt, wenn Sie auf [L]ebensraum ändern (s.u.) klicken.

Lebensraumgröße

Diese beiden Einstellfelder bestimmen, wie viele Zellen es im Lebensraum gibt und wie sie angeordnet sind.
Geben Sie die gewünschte Anzahl Zeilen und Spalten ein und Kicken Sie auf [L]ebensraum ändern!
Bedenken Sie bei der Wahl der Lebensraumgröße, die je Generation erforderliche Rechenzeit!
Wenn Sie den Lebensraum verkleinern, werden eventuell vorhandene lebende Zellen abgeschnitten.
Haben Sie unter Randbedingung dynamische Lebensraumvergrößerung ausgewählt, ist der neue Lebensraum jeweils eine Zeile bzw. Spalte größer als eingegeben, wenn sich andernfalls eine lebende Zelle am Rand befände.

[L]ebensraum ändern

Klicken Sie hierauf oder betätigen Sie [Alt]+[L], um die eingegebenen Werte für Zellengröße und Lebensraumgröße anzuwenden!

Randbedingung

Entscheidend für die Entwicklung des Lebens sind die Anzahl lebender Nachbarn einer Zelle. Eine Zelle hat acht benachbarte Zellen, es sei denn, sie liegt am Rand. Die Handhabung dieser Sonderfälle kann mit diesem Auswahlfeld festgelegt werden:

Globus

Dies ist die gebräuchlichste und auch realistischste Einstellung: Der Lebensraum ist wie die Oberfläche des Globus begrenzt, hat aber trotzdem keine Ränder. So hat jede Zelle genau acht Nachbarn. Dies wird erreicht, indem man sich vorstellt, die äußersten rechten und linken Zellenreihen grenzten an den Außenkanten des dargestellten Lebensraums aneinander; ebenso die obersten und untersten Reihen.
Der obere Nachbar einer Zelle in der obersten Zeile ist also diejenige Zelle in der untersten Zeile, die in der selben Spalte sitzt.
Diese Einstellung wird auch beim Platzieren der Lebensformen berücksichtigt: Ragt eine Figur über den Rand hinaus, kommt sie am gegenüberliegenden Ende wieder in den Lebensraum hinein. Das kann jedoch dazu führen, dass, wenn der Lebensraum zu klein ist, der rechte Teil der Figur den linken überschreibt.
Bei allen anderen Einstellungen der Randbedingung werden die lebenden Zellen einer Figur am Rand "gesammelt". D.h. die Zellen, die eine Lebensform außerhalb des Lebensraums hätte, werden am Rand gesetzt. Dadurch verändert sich natürlich die Form und damit auch die Eigenschaften der Figur.

Bei den folgenden drei Einstellungen stellt man sich an den Rändern des Lebensraums jeweils eine weitere Reihe Zellen vor, die zwar bei der Berechnung der lebenden Nachbarn berücksichtigt werden, selbst jedoch nicht mitspielen, ihren Status (lebend oder tot) also nicht ändern:

jede zweite Randzelle lebt immer

Hier wird von den imaginären Randzellen immer abwechselnd eine Zelle als lebend und eine als tot angenommen.

alle Randzellen leben immer

Bei dieser Auswahl werden alle imaginären Randzellen immer als lebend angenommen.
Dadurch werden unter Umständen - wenn die Regel für neu geborene Zellen 3 angewählt ist (s. dort!) - am tatsächlichen Rand sehr viele lebende Zellen erzeugt.

alle Randzellen sind immer tot

Die imaginären Randzellen sind alle tot. Diese Einstellung gleicht der "ungerechten" Behandlung von Randzellen, bei der die Eckzellen nur drei und Kantenzellen fünf statt acht Nachbarn haben.

dynamische Lebensraumvergrößerung

Utopia! Der Lebensraum ist (nahezu - s. Dynamische Lebensraumvergrößerung [A]bbrechen) unbegrenzt. Wann immer eine Randzelle des Lebensraums geboren wird, vergrößert sich der Lebensraum automatisch um eine Zeile bzw. Spalte. Dies gilt jedoch nur für die Simulation; beim Setzen von Lebensformen findet diese automatische Anpassung nicht statt.

Rahmendarstellung des Lebensraums

Form und Farbe des Rahmens, der um den Lebensraum gezeichnet ist, zeigt an, welche Randbedingung aktuell eingestellt ist:

Globus

jede zweite Randzelle lebt immer

alle Randzellen leben immer

alle Randzellen sind immer tot

dynamische Lebensraumerweiterung

Regeln

Mit den Regeln für das Weiterleben und Geborenwerden, die sie in der Tabelle mit den 16 Auswahlkästchen aufstellen können, beeinflussen Sie das Verhalten der Lebenssimulation maßgeblich:

In der Reihe Zelle lebt ggf. weiter legen Sie fest, unter welchen Bedingungen eine lebende Zelle in der nächsten Genration weiterleben darf: Ist z.B. nur unter der [4] ein Häkchen gesetzt, dann überlebt eine Zelle dann und nur dann, wenn sie genau vier lebende Nachbarn hat. Sind mehrere Kästchen angehakt, überlebt sie, wenn die Anzahl ihrer Nachbarn einer der gewählten Zahlen entspricht.

Die Reihe Neue Zelle wird geboren funktioniert analog für tote Zellen: Eine totte Zelle lebt in der nächsten Generation, wenn die Anzahl ihrer lebenden Nachbarn in dieser Reihe angehakt ist.

[O]riginal Convay

Klicken Sie auf diese Schaltfläche, wenn Sie die Regeln so einstellen möchten, wie der Erfinder der Simulation sie ursprünglich festgelegt hat.

[K]opierwelt

Mit dem Regelsatz, der eingestellt wird, wenn Sie auf diese Schaltfläche klicken, wird folgende interessante Eigenschaft der Simulationswelt erzeugt:
Eine beliebige 3x3 Zellen große lebende Struktur wird innerhalb von vier Generationen acht Mal kopiert. Die Kopien ordnen sich rings um den Ursprungsort an. Das Original verschwindet.
Während der nächsten vier Generationsschritte bewegen sich die Kopien weiter nach außen.

Liste der Tastenkürzel

[Alt]+
[ C ]=Lebensraum leeren
[ G ]=Anzahl Generationen
[ S ]=Simulation starten
[ U ]=Einzelschritt
[ T ]=STOPP!
[ W ]=Wartezeit
[ A ]=Abbruchkriterium für dynamische Lebensraumerweiterung
[ B ]=Breite der Zellen
[ H ]=Höhe der Zellen
[ P ]=Anzahl Spalten des Lebensraums
[ Z ]=Anzahl Zeilen des Lebensraums
[ L ]=Lebensraum ändern
[ R ]=Randbedingung einstellen
[ 0 ]=Zelle lebt ggf. weiter bei null lebenden Nachbarn
[ 0 ][ 0 ]=Zelle wird bei null lebenden Nachbarn geboren
...
[ 8 ]=Zelle lebt ggf. weiter bei acht lebenden Nachbarn
[ 8 ][ 8 ]=Zelle wird bei acht lebenden Nachbarn geboren
[ O ]=Original Convay-Welt
[ K ]=Kopierwelt
[ M ]=Monitor
[ N ]=Anzahl Nachbarn anzeigen