Blog Archives

Conway’s Game of Life

Ich habe mal wieder Spaß beim Programmieren gehabt. Bei der Entwicklung des Send More Money Programms hatte ich in der Vergangenheit auch schon mal Spaß gehabt. Programme, die kein Mensch braucht. 🙂

Schon lange einmal wollte ich mir das Game of Life des Mathematikers John Horton Conway vornehmen. Und inzwischen habe ich eine Version in PHP geschrieben.

Worum geht es im „Game of Life“?

Beim „Game of Life“ handelt es sich um die Simulation eines zellulären Automaten. Das ist ein Raum (oder eine Fläche als zweidimensionaler Raum), in dem sich voneinander getrennte Einheiten nach definierten Regeln entwickeln. In unserem Fall nehmen wir eine Art kariertes Blatt Papier. Da sind die Zellen quasi schon vorgegeben. Jede Zelle (jedes Quadrat auf dem Karoblatt) kann tot oder lebendig sein. Mehr nicht.

Wenn man jetzt zufällig (oder wohl überlegt) eine Reihe von Zellen ins Leben ruft, so ergibt sich ein Anfangszustand unserer kleinen Welt. Man kann zum Beispiel Reiskörner auf die Kästchen legen, wo sich eine lebende Zelle befinden soll.

Foto eines Karopapiers mit Reiskörnern

(Okay, so richtig viel kann man nicht erkennen. Ich hätte die Reiskörner einfärben sollen!)

Man könnte statt der Reiskörner auch ein paar Spielsteine nehmen.

Foto eines Karopapiers mit Spielsteinen

(Schon besser.)

Diese Ursuppe an Zellen bzw. Reiskörnern entwickelt sich nun nach genau vier einfachen Regeln weiter zu einer neuen Generation. Dabei wird jede Zelle einzeln auf ihre Nachbarn hin untersucht und dann entsprechend der Regeln in einen neuen Zustand überführt. Zellen können sterben, aber es können auch neue Zellen geboren werden.

Wie lauten die Regeln?

Für jede Zelle werden die Nachbarzellen betrachtet, also insgesamt 8 Zellen (diagonal zählt mit). Auf die Nachbarn selber haben die Regeln keine Auswirkung, sie werden also nicht beeinflusst. Es geht immer um genau dieses eine Kästchen. Deswegen werden bei den Beispielen auch keine Nachbarn mit in die nächste Generation übernommen. Wie es um sie steht, entscheidet sich erst bei der Untersuchung derer Nachbarn.

Neugeburt einer Zelle

Ausgangszustand für die Geburt einer neuen ZelleEine neue Zelle wurde geboren

In einem Kästchen, in dem sich noch keine Zelle bzw. kein Reiskorn/Spielstein befindet, kann neues Leben entstehen. Dazu braucht es zwei Eltern und eine Hebamme, also genau drei Nachbarn.

Überleben der Zelle

Eine Zelle mit zwei Nachbarn überlebtDer Zustand der Zelle hat sich nicht geändert
Eine Zelle mit drei Nachbarn überlebtDer Zustand der Zelle hat sich nicht geändert

Befindet sich in einem Kästchen ein Reiskorn/Spielstein, so kann die Zelle nur dann überleben, wenn sie genau zwei oder drei Nachbarn hat. DIe drei Nachbarzellen helfen also nicht nur bei der Geburt, sondern auch beim Überleben. Das nennt man wohl Familie.

Die Zelle stirbt an Einsamkeit

Eine Zelle ohne NachbarnDie einsame Zelle ist gestorben
Eine Zelle mit einem einzigen NachbarnDIe Zelle ist gestorben, die Nachbarzelle wird nicht beeinflusst.

Wenn die Zelle gar keine oder nur einen einzigen Nachbarn hat, dann geht es der Zelle sehr schlecht und sie stirbt leider an Einsamkeit.

Die Zelle stirbt an Überbevölkerung

Diese Zelle hat rundherum überall Nachbarn.Die Zelle ist an der Überbevölkerung gestorben.
Eine Zelle mit vier Nachbarzellen.Eine Zelle mit vier Nachbarn ist gestorben.

Bei vier oder mehr Nachbarn bekommt die Zelle einen Rappel und stirbt an Überbevölkerung, Man könnte auch sagen, dass einfach nicht genug Nahrung für alle da ist.

Vom Karopapier zum PHP-Programm

Keine Frage: das kann man super mit einem Blatt Papier spielen.

Ein wenig mühsam ist es aber schon.

Und deswegen gibt es auch zahlreiche Programme und Apps, mit denen man das ganz einfach spielerisch auf dem Handy oder dem PC ausprobieren kann.

Ich habe mir mein eigenes Programm geschrieben.

Wenn ihr wollt, könnt ihr das hier ausprobieren: http://sevke.net/php/gol/gol.php.

Interessante Objekte in Conway’s Game of Life

Wenn man mit dem Programm eine Zeit lang herumgespielt hat, stellt man schnell fest, dass es ein paar interessante Objekte gibt. Mitunter bleiben Zellklumpen erhalten und entwickeln sich nicht mehr weiter.

Zusammenstellung von statischen <Objekten in Conway's Game of Life
In dem Bild seht ihr die folgenden Objekte von links oben nach rechts unten: Pond (Teich), Block, Loaf (Laib), Beehive (Bienenstock), Tub (Wanne), Snake (Schlange), Boat (Boot), Largeboat (großes Boot), Ship (Schiff), Largeship (großes Schiff), Barge (Kahn), Largebarge (großer Kahn).
(Ich habe mir diese Bezeichnungen nicht ausgedacht.)

Manche Objekte wechseln immer zwischen mehreren Zuständen hin und her, bleiben aber ansonsten stabil.

Der Blinker
[selber ausprobieren]

Anfangszustand des BlinkersOszillierender Blinker

Die Uhr
[selber ausprobieren]

Anfangszustand der ClockOszillierende Clock

Der Bipol
[selber ausprobieren]

Anfangszustand des BipolsOszillierender Bipol

Der Tripol
[selber ausprobieren]

Anfangszustand des TripolsOszillierender Tripol

Die Kröte
[selber ausprobieren]

Anfangszustand des ToadsOszillierender Toad

Das Pentadecathlon
[selber ausprobieren]

Anfangszustand des PentadecathlonsOszillierendes Pentadecathlon

Der Pulsar
[selber ausprobieren]

Anfangszustand des PulsarsOszillierender Pulsar

Das Oktagon
[selber ausprobieren]

Anfangszustand des OktagonsOszillierendes Oktagon

Der Tümmler
[selber ausprobieren]

Anfangszustand des TumblersOszillierender Tumbler

Der Pulsar ist eins meiner Lieblingsobjekte. Er besitzt im Zentrumsbereich einige statische Zellen, um die herum das Gebilde pulsiert.

Darstellung der drei Phasen des Pulsars

Die 3 Phasen des Pulsars

Und dann gibt es manchmal sogar Gleiter und Raumschiffe, die sich über den Bildschirm bewegen, ihre Form dabei ändern, dann aber wieder zur Ursprungsform zurückfinden.

Der Glider in der ersten Generation

Glider

Das LWSS in der ersten Generation

LWSS

Das MWSS in der ersten Generation

MWSS

Das HWSS in der ersten Generation

HWSS

Der Gleiter bewegt sich diagonal über das Spielfeld.

Das sieht dann in etwa so aus:

Der Glider in der Bewegung

Hier bewegt sich der Gleiter diagonal nach rechts unten … auch wenn es komisch aussieht, als würde sich das Papier nach links oben bewegen. Alles ist eben relativ. 😉

Im Gegensatz zum Gleiter bewegen sich die Raumschiffe immer senkrecht oder waagerecht. Die drei verschiedenen Raumschiffe unterscheiden sich nur in ihrer Größe. Exemplarisch hier die Bewegung des LWSS (Light Weight Space Ship):

Das LWSS in der Bewegung

Eins der interessantesten Objekte ist die Gosper Gleiter Kanone. Dieser Zellenverbund wabert immer von rechts nach links und wieder nach rechts und stößt dabei nach unten in regelmäßigen Abständen Gleiter aus, die sich nach unten rechts wegbewegen. Das Ganze läuft in einer endlosen Schleife.

Die Gleiter Kanone sieht folgendermaßen aus:
Die Glidergun in der ersten Generation
Naja, okay, unter einer „Kanone“ stellt man sich überlichweise etwas anderes vor. Die Bezeichnung müsst ihr einfach akzeptieren. Jedes Ding braucht seinen Namen.

In Aktion werden – wie gesagt – regelmäßig kleine Gleiter ausgestoßen. Das wiederholt sich immer wieder.

Animierte Darstellung der Glidergun

Hinweise zu meiner Version des Game of Life

Normalerweise werden die Zellen immer als schwarze Objekte dargestellt. Ich habe das Ganze etwas farbenfroher gestaltet:

Farbige Darstellung des Tumblers in der neunten Generation

Der Tumbler

Grün: eine Zelle wurde neu geboren
Schwarz: die Zelle hat überlebt
Grau: die Zelle ist schon ziemlich alt
Rot: die Zelle stirbt gleich an Einsamkeit

Das Programm unterstützt (zur Zeit) nur Einzelschritte, aber keine (endlose) automatische Erzeugung der Generationen. Damit möchte ich verhindern, dass einige Spaßvögel den Webserver einem Stress-Test aussetzen.

Eine ganze Menge an stabilen statischen Objekten (Block, Tub, Snake, Beehive, Pond, Loaf, Boat, Largeboat, Ship, Largeship, Barge, Largebarge) und stablien oszillierenden Objekten (Blinker, Toad, Beacon, Tripole, Clock, Oktagon, Tumbler, Pulsar, Pentadecathlon) sowie natürlich verschieden Gleiter und Raumschiffe (Glider, LWSS, MWSS, HWSS) und natürlich die berühmte GliderGun könnt ihr euch anzeigen lassen, indem ihr an den URL den Parameter „?type=…“ anhängt. Die drei Punkte müsst ihr dabei durch den Namen des Objektes (alles in Kleinbuchstaben) ersetzen.

Alle oszillierenden Objekte werden mit jeweils 2 kompletten Zyklen angezeigt. Danach könnt ihr per Einzelschritt weitermachen.

Beispiel: http://sevke.net/php/gol/gol.php?type=glidergun.

Weitere Informationen im Internet

Sunwave Singlereisen – Bus statt Mietwagen

Ach … schau mal an …
Gerade lese ich den aktuellen Newsletter von Sunwave Singlereisen, und was lese ich da?

Neu in Portugal: Ausflüge bequem per Bus.
Bei den Reisen nach Portugal gibt es in diesem Jahr eine Neuerung; der Flughafentransfer und die Ausflüge erfolgen mit dem Bus statt mit dem Mietwagen.

Ein breites Grinsen konnte ich mir nicht verkneifen.

Immerhin hatte ich genau die Anmietung der Mietwagen in meinem Artikel Lissabon-Reise mit Sunwave – Anreisetag kritisch betrachtet.

Die Herausforderungen mit Mietwagen in Stichworten:

In meinen Berichten habe ich diese Punkte alle angesprochen. Die Listenpunkte sind zu den entsprechenden Artikeln verlinkt.

Nachteile bei Verzicht auf Mietwagen

Dem gegenüber steht natürlich der Verlust an Individualität. Ohne Mietwagen kann sich niemand mal schnell das Auto schnappen und auf eigene Faust die Gegend erkunden … so, wie ich es getan habe. Aber das ist kein wirklicher Nachteil, denn genau das war ja trotzdem weiterhin möglich: jeder konnte sich bei Bedarf selber ein Auto mieten und damit herumfahren.

Grundsätzlich hatte ich allerdings den Eindruck, dass sich der Wunsch nach individuellen Ausflügen mit dem Auto in Grenzen hielt. Außerdem gab es und gibt es die bequeme Möglichkeit, mit dem Zug zu fahren.

Ein bisschen rätsel ich noch, wie Ankunft und Abflug der Gruppenteilnehmer organisiert werden. Die Flugzeuge kommen ja nicht zur selben Zeit an und fliegen auch nicht zur selben Zeit ab.

Fährt der Bus jetzt mehrmals hin und her?

Oder verbringen die Gäste nun den halben Tag auf dem Lissabonner Flughafen?

Falls jemand von euch mal diese Reise bucht, würde ich mich freuen, wenn ihr hier als Kommentar beschreiben könntet, wie das nun abläuft. Bin schon etwas neugierig.

Ich finde es jedenfalls gut, dass Sunwave auf die Kritik von mir und wahrscheinlich vielen anderen reagiert hat und nun ein anderes Transportsystem ausprobiert.

Deutsche Literatur – 10. Klasse Gymnasium

Sprechblase mit dem Text Bäh Mein Sohn weiß ja genau, wie er mich sauer macht. Aber wissen das unsere Tee-Nager nicht alle? 😉

Jedenfalls muss er mal wieder über die Ferien ein Buch lesen. Das hatten wir doch schon mal? Ja, hier: Ferien – 59 Stunden Arbeit. Aber diesmal geht es nicht um eine Bearbeitung und Präsentation. Er soll das Buch nur lesen. Das finde ich akzeptabel, hält ihn das doch wenigstens zeitweise mal vom Computer fern.

Nur so recht voran kommt er nicht. Das Buch liest sich wohl nicht so gut. Und so hat er mir heute einen Ausschnitt vorgelesen:

Abfotografierter Ausschnitt von Seite 98 und 99

Schwer zu erkennen? Hier noch mal als Text:

Als wir die drei vor uns torkeln sahen, wußten wir, was es geschlagen hat. Wir kannten sie doch. Kojoten nannten wir sie. Streunten herum, wühlten im Dreck, brachten nichts mehr zuwege. Da gehörten noch andere dazu. Aber diese drei hatten noch einen speziellen Namen. Wir nannten sie die Arschficker-Partie. Diesen Ehrentitel hatten sie sich gut ein Jahr zuvor verdient, als wir sie auf der Toilette festnahmen. Die Frau lag auf dem Steinboden und rührte sich nicht. Der eine bearbeitete ihren mit Blut und Dreck verschmierten Arsch, der andere wichste seinen verschissenen Schwanz. Ein Zeitungspapier hatten sie ihr untergelegt. Es stank nach reiner Scheiße. Aber das schien diese Typen überhaupt nicht zu stören.Der eine stocherte weiter und grunzte dabei, der andere hielt seinen verschmierten Stengel in die Höhe, als wollte er sich auch noch einen blasen lassen. Es war unglaublich.

Nunja, diese Sätze aus dem Mund meines Sohnes ließen meine Gesichtszüge einfrieren. Er ist zwar alt genug für so etwas, aber in meinen Ohren klang es doch ziemlich deftig.

Das Buch?

Aus meinem Deutschunterricht bin ich so kurze Sätze wie oben im Textausschnitt nicht gewohnt. Schreibt man heute so? (Im Internet: ja, auf WhatsApp: ja … aber in einem Roman?) Mir erschließt sich leider auch nicht die Ästhetik der Sprache, obwohl der Autor laut Klappentext Professor für literarische Ästhetik in Leipzig ist oder war (das Buch ist von 1995).

Aber vor allem frage ich mich, ob ich so etwas lesen will? Nein, ich will nicht und ich muss auch nicht. Mein Sohn muss. Zur Erinnerung: 10. Klasse. Wobei ich zugeben muss, dass sich die Klasse für das Buch entschieden hat, das von der Lehrerin lediglich vorgeschlagen und empfohlen wurde. Ich denke, die Schüler hatten da eher keine Meinung und waren grundsätzlich nicht sehr erfreut über den Gedanken, in den Ferien lesen zu müssen. LESEN! Ein Buch! Ob die Feinmotorik der Finger überhaupt mit dem Umblättern der Seiten fertig werden würde. (Ich bin gemein!)

Nun sind die Beurteilungen im Internet insgesamt eher positiv und ich kann auch gar nichts zum Inhalt sagen, habe es ja nicht gelesen. Das Buch wurde 1998 sogar verfilmt (unter anderem mit Heiner Lauterbach). Vielleicht lohnt sich die Lektüre ja wirklich.

Dennoch sitze ich jetzt hier alleine am Computer und bin etwas durcheinander. Bin ich zu prüde? Bin ich zu spießig? Bin ich einfach zu alt für moderne Literatur?

Können es nicht die „Die Leiden des jungen Werther“ sein oder meinetwegen „Die neuen Leiden des jungen W.“?