Wer kennt es nicht, das gute alte Pong –Tischtennis, hier als 1D-Variante. Der Ball fliegt zwischen L15 und L0 hin und her.
Wenn Ball L15 bzw. L0 erreicht, muss er mit T2 bzw. T0 zurückgeschlagen werden. Der Treffzeitpunkt beeinflusst die Ballgeschwindigkeit. Gegen das Programm kann gespielt werden, wenn nach dem Einschalten bei blinkender L3 Taste T1 gedrückt wird, die Rolle von Spieler 2 (L15, T2) übernimmt der Computer.
Softwarebeschreibung
Variable ballOrt
Die Ballposition wird durch eine Variable ballOrt bestimmt. Damit die Spieler die Geschwindigkeit des rückgeschlagenen Balles beeinflussen können, wird der Zeitpunkt des Treffens im Schlägerbereich verwendet. Je früher getroffen wird, desto schneller fliegt der Ball zurück.
Die 16 LED-Positionen werden dazu in 8 Unterpostitionen also insgesammt128 Ballpositionen erweitert: LED-Nummer = ballOrt / 8.
Variable ballFlugZeit
Eine Variable ballFlugZeit gibt die Verzögerung in ms zwischen den Ballpositionen an. Sie wird vom Level und dem Zeitpunkt des Zurückschlagens im Schlägerbereich bestimmt. Wenn direkt beim Eintreten in den Schlägerbereich die Taste gedrückt wird werden 0 ms, sonst entsprechend der Ballposition bis 6 ms zu der ballFlugZeit addiert, der Ball fliegt langsamer.
Um die Trefferwahrscheinlichkeit zu erhöhen wird im Schlägerbereich ausserdem die ballFlugZeit um 50% erweitert.
Automatikmodus
Wenn beim Einschalten durch Drücken von Taster T1 der Automatikmodus aktiviert wird, über nimmt für Spieler 2 das Programm das Zurückschlagen des Balls. Beim Eintritt in den Schlägerbereich wird bei jeder Ballposition "gewürfelt" und mit 50% Wahrscheinlichkeit der Ball zurück geschlagen.
Aufgaben
Beschreiben Sie, wie die Spiel-Level funktionieren.
Erstellen Sie ein Zustandsdiagramm (Software) zu den Zuständen in main().