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-XO4Um 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