Wettbewerb: Ping-Pong Platine
Schiffe versenken - mit der Ping-Pong Platine von Franzis
Im Rahmen des Programmier-Wettbewerbes rund um die Ping-Pong Platine von Franzis entstand ein weiteres spannendes und unterhaltendes Ergebnis, welchers wir Ihnen hier gerne vorstellen möchten.
von Klaus Peichl

Es handelt sich um das Spiel "Schiffe versenken", wobei der Spieler gegen den ATMEGA antritt.
Das Spiel funktioniert ohne Hardware-Erweiterungen, profitiert aber von einem an PORT B7 angeschlossenen Lautsprecher, der für Soundeffekte sorgt.
Dazu eignet sich z. B. ein Piezo-Schallwandler, der in Serie mit einem Widerstand von etwa 330 Ohm zwischen PORT B7 und GND geschaltet wird.
Schiffe aufstellen: Das Spielfeld besteht aus einem Quadrat aus 10x10 Feldern, welches horizontal zentriert auf der 12x10-LED-Matrix abgebildet wird.
Nach dem Münzeinwurf platziert der Spieler fünf Schiffe der Längen 5, 4, 3, 3 und 2 auf dem Spielfeld, wobei sich die Schiffe nicht berühren dürfen.
Die beiden Drehregler des Ping-Pong-Spiels dienen zur Einstellung der X- bzw. Y-Koordinate.
Das Schiff lässt sich um 90 Grad drehen, indem man es gegen eine Spielfeldkante schiebt, zu der es sich dann parallel ausrichtet.
Ganzen Artikel lesen...
Die linke und rechte Spalte der LED-Matrix visualisieren einen Countdown, nach dessen Ablauf die Position für das jeweilige Schiff eingefroren wird.
Zunächst dürfen beide Kontrahenten abwechselnd feuern, wobei per Zufall entschieden wird, wer die Schlacht beginnt.
Das gegnerische Seegebiet befindet sich nördlich des eigenen und scrollt in das Sichtfeld des "Radarschirms", wenn der Spieler an der Reihe ist. Das Fadenkreuz seines Zielfernrohrs verschiebt man wieder mit den Drehreglern, der Countdown läuft sobald das Ziel nicht weiter variiert wird.
Parkpositionen am linken und rechten Bildschirmrand ermöglichen die Unterbrechung des Spiels.
Fehlschüsse werden auf der Karte als schwach leuchtende Markierungen gekennzeichnet.
Wird ein Segment eines Schiffs getroffen, gerät es sofort in Brand, was sich durch ein rötliches Flackern äußert.
Nach jedem Treffer darf der jeweilige Spieler sofort erneut feuern.
Ein Schiff gilt als versenkt, wenn alle seine Segmente zerstört wurden.
Versenkte Schiffe werden im gegnerischen Spielfeld hell leuchtend markiert.
Vom Computergegner versenkte eigene Schiffe erscheinen ebenso wie die gegnerischen Fehlschüsse als schwache Leuchtpunkte.
Das Spiel gewinnt, wer zuerst alle gegnerischen Schiffe versenkt hat.

Das Programm wurde in C geschrieben und wird mit dem avr-gcc cross-compiliert.
Zu Debugging-Zwecken kann auch eine Version für den Linux-PC mit gcc erzeugt werden.
In diesem Fall werden einige Lowlevel-Routinen durch entsprechende Terminalfunktionen ersetzt.
Ein zweiter Thread simuliert dabei den Timer-Interrupt zur Aktualisierung der LED-Matrix.
Download: Quelltext und Hexfile
Die passende Ergänzung zu diesem Artikel:
 | Franzis Ping-Pong Produktart: Softwarebox ISBN 978-3-7723-4799-3 Versandkostenfrei* direkt beim Verlag bestellen
29,95 € 
|

Lernen Sie die ganze Vielfalt vom Franzis Buch- und Softwareverlag kennen