Tetris

von Hans Eckardt

Elektronik-Labor  Labortagebuch  ELO  Mikrocontroller


Da ich inzwischen etwas Anspruchsvolleres auf  der Pong-Hardware entwickeln wollte, habe ich beschlossen ein Tetris zu programmieren.
Dieses Spiel ist ja genau wie Pong ein Spieleklassiker, und es reizte mich ob es auf der Hardware sinnvoll zum Laufen zu bringen ist.

Kurz gesagt es läuft und macht einfach Spaß! In Aktion sehen Sie es auf hier: http://www.youtube.com/watch?v=4ApajIE-XO4

Um nicht bei Null anfangen zu müssen, habe ich auf den Code unter der Adresse http://www.1541.org/ - eine Spielesammlung mit dem Namen „This is the "OSD Games Collection plugin" for the Video Disk Recorder (VDR)“ aufgesetzt. Dieser Code hat die Lizenz GPL. Mein Code steht damit auch unter der GPL, was anderen die Weiterentwicklung ermöglicht.

Nun zum Spiel selbst:
Es läuft auf dem Original Pong ohne Veränderungen der Hardware, allein das Spielfeld muß hochkant stehen (um 90 Grad nach rechts gedreht). Drehen Sie beide Potis in die Mitte.  Nach Einlegen der Batterien startet das Spiel mit einer kurzen Begrüßung,  Danach wird der Score-Screen angezeigt. Oben steht Ihr aktueller Punktestand und unten der Spiel-Level.
 


Danach erscheint oben der erste Spielstein und beginnt langsam nach unten zu fallen. Mit dem unteren Poti bewegen Sie ihn in der Waagerechten.



Mit dem oberen Poti können Sie durch eine Linksdrehung den Spielstein um 90 Grad drehen. Bei einer Rechtsdrehung fällt er ungebremst nach unten. Es empfiehlt sich, die Mittelstellung später mit einem Strich auf der Frontplatte zu markieren.
 


Um den Spielstein um mehr als 90 Grad zu drehen, müssen Sie ihn mehrere Drehungen machen lassen. Dazu jeweils das obere Poti in die Mittelstellung bringen und erneut nach links drehen.  Der nächste Spielstein erscheint. Jeweils ein heller und ein etwas dunklerer Spielstein erscheinen abwechselnd am oberen Rand. Ziel ist es, komplette Reihen mit Spielsteinen zu füllen. Es ist normal und durch die Hardware vorgegeben, dass schon unten liegende Spielsteine mit der Bewegung des fallenden Spielsteines leicht heller und dunkler werden. Am besten begegnen Sie dem, indem Sie möglichst komplette Reihen bauen die dann verschwinden ;-) Eine komplette Reihe blinkt vier mal und verschwindet dann.

Wenn ein Spielstein nicht mehr nach unten fallen kann, wird kurz der Score-Screen angezeigt, dann kommt der nächste Spielstein. Das Spiel ist zu Ende wenn oben keine neuen Spielsteine eingefügt werden können. Es gibt neun Level. Wenn Sie Score-Werte über 199 erreichen ;-) nicht erschrecken, die letzte Ziffer ist nicht komplett da nur 10 Spalten da sind. Die Score-Anzeige geht bis 999! Nach Spielende wird blinkend der Score angezeigt, danach kurz das letzte Spielfeld. Der Atmega8 geht in den Power-Off Modus und kann erst durch Münzeinwurf zum nächsten Spiel überredet werden.


 
Im Programm ist eine Pausenfunktion implementiert, dazu müssen Sie jedoch einen zusätzlichen Taster zwischen D3 und Masse (K1) anschließen. Ein Druck auf den Taster zeigt ein II – Symbol an (Pause) und nach erneutem Betätigen geht es weiter. Das ist aber nur ein zusätzliches Gimmick. Es ist schon erstaunlich was so ein kleiner Atmega8 leistet. Das Spiel nimmt gemessen gerade mal 10…16 mA Strom auf, und im Power-Off Modus beträgt der Stromverbrauch nur 0,6 µA.

Die Code-Portierung war, auch dank PongSimu (siehe anderer Artikel von mir) recht einfach zu bewältigen, die Adaption an die Hardware hat dann doch etwas mehr Mühe gemacht.  Das Schwierigste war von einer Tastensteuerung auf die Steuerung mit den beiden Potis überzugehen. Ursprünglich war die Richtungssteuerung des Spielsteins mit dem unteren Poti nur eine „Lenksteuerung“ stur rechts/links wie bei einfachen ferngesteuerten Autos. Mit einer Positionssteuerung ist das Spiel jedoch viel besser spielbar weshalb diese jetzt implementiert wurde. Das obere Poti bewirkte zuerst eine dauernde Drehung des Spielsteins, wenn nach links gedreht. Mit dem Zwang nach jeder Drehung wieder in die Mittelstellung zu gehen, ist die Drehung des Spielsteins viel besser zu kontrollieren. Im Quelltext finden Sie weitere Hinweise, wenn Sie das Programm weiterentwickeln wollen.

Und jetzt viel Spaß beim Spielen!

 
Download:  Tetris20100331.zip  


 


Elektronik-Labor  Labortagebuch  ELO  Mikrocontroller