Webworker.
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
Moin, mein Name ist Hauke Lübbers alias Dubbel. Auf diesem Blog veröffentliche ich in unregelmäßigen Abständen kleine Tutorials zu Linux, Webentwicklung sowie TI-Basic.
4 Kommentare zu Pingpong Multiplayer für TI-TRs
Michael
17.10.2009 um 13:48
Hi,
danke für das Spiel. Hab nur eine Kleinigkeit: Wenn man die (beweglichen) Wände an einer bestimmten stelle stehen lässt, muss man nichtsmehr tun, um den Ball drinzuhalten. Die Position ist für beide eins weiter unten als die Startposition. Ist das ein Tippfehler oder habt ihr das auch?
Grüße, Michael
Leander
11.02.2010 um 08:20
Hi
ich hab da mal ne frage. hast du das spiel als programm oder als funktion gespeichert? oder als etwas anderes?
da ist noch was, ich hab den TI Nspire CAS und da gibt es befehle wie ‘output’ oder ‘ClrHome’ nicht, und diese ‘->’ auch nicht. kann ich das mit dem output auch mit ‘disp’ lösen oder geht das nicht? und was bedeuten diese ‘->’?
Danke zum Voraus für deine Hilfe
Grüsse Leander
Dubbel
11.02.2010 um 12:23
Mit -> sind die Pfeile gemeint, mit denen man Variablen ihren Wert zuweisen kann. Mehr Informationen darüber findest du auf
http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-3/
Eigentlich ist das nur ein Zeichen, aber ich habs hier einfach als Minus und größer als dargestellt.
Leider kenne ich mich mit dem TI Nspire CAS nicht aus, da ich nur den TI83-Plus habe. Hast du auch in der “zweiten Ebene” der Tasten gesucht, also wenn man 2nd drückt?
http://www.acdca.ac.at/material/nspire/nspire_progkurz.pdf Hier ist nochmal ein Link zu einem tutorial über das Programmieren mit dem Nspire
Und nein, Disp ist nicht das gleiche wie Output, da man dort nicht die Koordinaten angeben kann, wo das Zeichen ausgegeben werden soll. Disp schreibt den Text immer in eine neue Zeile…
Hoffe, ich konnte dir helfen.
Leander
15.02.2010 um 18:48
Ja, danke, du konntest viel helfen. Allerdings bin ich nicht sicher ob ich auf dem CAS auch mit Koordinaten arbeiten kann. Auf dem CAS gibt es ein extra Programmeditor und da kann man die Befehle per Menu raussuchen. und sehr viele gibt es da nicht. Naja versuchs mal auf dem CAS umzusetzen, sonst lass ichs halt. Trotzdem Danke
Grüsse Leander