Heute hab ich ein simples kleines Spiel programmiert. Hier der Quellcode plus die Erklärungen in [...]
Heute war in beim BurgerKing essen. Und während ich geduldig auf meinen Hambuger + 2 Cheeseburger + 0,4 Cola wartete kam ich auf die Idee ein kleines Spiel für den TR zu programmieren.
Um es zu spielen benötigt man 2 Personen. Man legt den Taschenrechner zwischen sich.
Der eine kontrolliert seine Wand mit der 9 und 3, der andere mit der 7 und der 1.
PROGRAM:PINGO ClrHome Disp "Pingo" Disp "CODE BY DUBBEL" ClrHome [hier evt. noch weitere Informationen und Anleitung ausgeben lassen] 0->A [Geschwindigkeit mit der sich der Ball nach oben/unten bewegt] 1->B [Geschwindigkeit mit der sich der Ball nach rechts/links bewegt] 5->C [Position des Balles auf der Y-Achse] 8->D [Position des Balles auf der X-Achse] 4->E [Position der oberen Wand auf der Y-Achse] 5->F [Position der unteren Wand auf der Y-Achse] Pause Lbl A If (B=1):Then [wenn der rechte Spieler dran ist (Ball bewegt sich nach rechts)] If (G=74):Then [wenn die 9 gedrückt wurde] If (E > 1):Then [Kollisionsabfrage] E-1->E:F-1->F End End If (G=94):Then [wenn die 3 gedrückt wurde] If (F < 8):Then [Kollisionsabfrage] E+1->E:F+1->F End End End If (B=-1):Then [Wiederholung nur eben für die beiden anderen Tasten] If (G=72):Then If (E>2):Then E-1->E:F-1->F End End If (G=92):Then If (F<7):Then E+1->E:F+1->F End End End ClrHome Output(E,16,"O") [Rechte Wände] Output(F,16,"O") Output(E,1,"O") Output(F,1,"O") Output(1,1,"----------------") [Begrenzung oben/unten] Output(8,1,"----------------") If (C=E and (D=15 or D=2)):Then B*-1->B:1->A [kollision mit Wänden] End If (C=F and (D=15 or D=2)):Then B*-1->B:1->A End If (C=2 or C=7):Then A*-1->A [Kollision mit Wänden oben/unten] [A*-1->A stand hier nocheinmal - muss entfernt werden] End If (D=16 or D=1):Then Output(4,4,"GAME OVER") If(D=16):Then Output(6,7,"LINKS") Else Output(6,6,"RECHTS") End Output(7,3,"HAT GEWONNEN") PAUSE prgmPINGO End Output(1,D,"I") Output(1,D,"I") Output(C,D,"+") C+A->C:D+B->D [Update Positionen - hier vor vorher ein Fehler] Output(C,D,"*") getKey->G [Tastendrücke werden abgefangen] Goto A
