in Programming, TI-BASIC

Pingpong Multiplayer für TI-TRs

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

Write a Comment

Comment

29 Comments

  1. Ich möchte ein Spiel programmieren. Wie kann ich das machen: ”Wenn Pfeil nach oben gedrückt, dann starte das Programm PRGMname”
    Würde mich über eine Antwort freuen :)

    • Bei Test->Logic. Test ist zu erreichen mit 2nd+MATH. Da stehen alle logischen Operatoren. Wenn du sonst Befehle nicht findest hilft auch der Catalog unter 2nd+0 :)

      Edit: Ich finds übrigens klasse, dass du mithilfst wenn andere Kommentatoren Probleme haben! :D

      • Man hilft sich halt :D

        Und an der Stelle auch mal n´Lob an dich, ich könnte schlecht bei Fehlern helfen, wenn es diesen Blog mit den super Erklärungen nicht gäbe,
        ich schätze das ganze wieß ich eh nur von diesen Tutorials :D

  2. leider hat das nichts gebracht vieleicht hätte ich sagen sollen dass mein rechner ein problem mit dem B hat und nicht mit dem minus aber danke für deine antwort

  3. Erstmal coole Seite! Aber bei mir kommt immer Error Syntax und dann geht er zu dem B*-1!(das ist relativ am Ende) Was mache ich falsch? Benutze Ti- 84 plus Silver edition

    • Es gibt ja zwei Arten von Minus. Einmal z.B. 5-5, da wird 5 von 5 abgezogen. Aber wenn man nur die Zahl -5 schreiben will, dann nutzt man das “kleine Minus” als Vorzeichen, das man ganz unten links neben dem ENTER findet. Hast du da vielleicht einen Fehler? Ansonsten ist das von hier aus relativ schwer festzustellen.

  4. hey bubbel ds spiel is cool aber wenn man ein nach unten geht mit den wänden bleibt der ball immer drin hättest du ne idde wie man das anders machen könnte

  5. Ähm,also ich habe vorhin ein spiel per computer auf meinen voyage draufgeladen…aber ich finde es nicht mehr wieder…

  6. wie michael gesagt muss man die nur einen nach unten halten und der ball bleibt immer noch dirin …

    aber rtrotzdem und cooles spiel!!!!

    daumen hoch !

  7. und schon wiedr das nächste problem -.-, sry ne das ich nerve…….
    wenn ich das spiel jetz spiel dann geht dert ball imer den gleichen weg wenn ich anfange halt geh ich mit den wänden einen nach unten
    der ball geht zu gegner nach unten dann geht er auch die selbe stlle wie beim gener also mmuss ich die wände nur parralell 3 nach unten setteln und das wars hättest du einne tipp ? und wei macht man die kugel langsamer?

  8. hey , es funktioniert der fehler war das ich das eine auf zeile 55 nich entfernt habe aber weißt du wie man die kugel langsamer kriegt?

    DANGGE FÜR DEINE HILFE

  9. dake sehr soger ! unglaublich wie schnell du geantwortest hast !
    aber leider hätte ich da noch ne frage wenn es dir nix ausmacht
    ich hab da wie bei zeile t2 und 74 das glecihe eingegeben aba er meint das sei immer noch flasch . wäre schön wenn du ne idee hättest warum

    und ich hab das programmien hier zum erstmal gesehen und war sofort begeistert darüber ! ich arbeite grad in einem spiel wo man 25 rätsel lösen muss und hätte dazu auch eine frage kann man auch wörter in variabeln hinzufügen , so etwa ( geht das):

    wort->A geht das ?

    danke im vorraus

    grüße aga

  10. Der Domain Fehler besagt, dass du mit Qutput versuchst etwas außerhalb des Bildschirms zu zeichnen.

    Der Bildschirm ist glaube ich 8×16 Zeichen groß, oder so, d.h. die Koordinaten dürfen nicht größer als das sein.

    Das Zeichen nach dem A in Zeile 54 ist ein Mal. Also A mal Minus Eins.

    Ich hoffe, ich konnte dir weiterhelfen :)

  11. hi, also erstmal großen respekt von mir für diese tollen seite,

    ich hab nur eine frage mein rechner (ti-82 stats ti basic) hat ein problem auf zeile 72 und das gleiche auf 74 ich weiß nicht woran das liegen könnte und wollte fragen auf der zeile 54 wie du das zeichen nach dem ertsen A machst ?

    immer wenn er mir den fehler auf ziele 72 & 74 , kleines bespiel:

    fehler:
    domain
    1:goto
    2:quit

    was heißt eigentlich auch der fehler ,,domain,, ?

    würde mich über ne antwort freuen, deine seite is unter meine top 10 nur als info , tolle seite

  12. 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

  13. Mit -> sind die Pfeile gemeint, mit denen man Variablen ihren Wert zuweisen kann. Mehr Informationen darüber findest du auf
    https://archive.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?

    https://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.

  14. 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

  15. 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