Game of Life

von Namenverloren
Aus ELO 2010
Elektronik-Labor  Labortagebuch  ELO  Mikrocontroller



Lassen Sie auf der Pong-Platine Conway’s Game of Life ablaufen! Eine Anwendunng der zellulären Automatentheorie, umgesetzt auf dem kleinen ATMEGA8. Die Regeln finden Sie unter http://de.wikipedia.org/wiki/Game_of_Life.

Im Kern ist es eine Zellwachstums-Simulation, die nach einer Anfangsbelegung des Feldes selbständig abläuft. Mein Programm basiert lose auf einer Demo-Anwendung von Qt. Nach Start des Programms (Zuführung der der Versorgungsspannung) wird nach einer kleinen Initialisierungspause (untere rechte LED leuchtet), das rechte Poti abgefragt.

Der Wert der Spannung initialisiert den Zufallsgenerator, und dann werden zufällig neue Zellen in’s Feld gesetzt. Die Simulation beginnt. Sie können Sich bequem zurücklehnen und zusehen welche Zellen überleben, absterben oder wo neue entstehen. Wenn Sie Glück haben entstehen stabile Strukturen, die entweder gleich bleiben, oszillieren oder sich weiter bewegen. Durch Bewegen des rechten Potis wird ein neuer Zufallswert erzeugt, und das Spiel beginnt von Neuem.

Durch Bewegen des linken Potis erhalten Sie eine Anfangsbelegung, die aus bekannten stabilen Zellmustern eines auswählt. Diese Zellmuster sind stabil, d.h. nach einer Anzahl von Generationen ist das Anfangs-Muster wieder da. Leider ist im AVR das Spielfeld begrenzt (theoretisch wird ein unbegrenztes Spielfeld vorausgesetzt) so daß nicht alle Zellmuster stabil sind. Experimentieren Sie ein wenig.

Das AVR Programm beinhaltet um das sichtbaren Feld einen Randbereich, der auch mit einer Breite von vier Zellen enthalten kann, die fünfte Zelle ist eine tote Zelle da kein unbegrenztes Spielfeld implementiert ist.  Unterbrechen Sie die Stromversorgung, wenn Sie genug Game of Life „gespielt“ haben.

Das Gehäuse meines Pong ist aus einem gerade vorhandenem Plastikgehäuse gemacht, ich habe eine Farbfolie auf die LED’s angebracht um den Kontrast zu erhöhen.



Download:  1003gameoflife.zip


Elektronik-Labor  Labortagebuch  ELO  Mikrocontroller