TI BASIC Tutorial 4

Nach langem Warten und unzähligen verzweifelten Fanmails [/ironie] hier nun der 4 und letzte Teil des Tutorials.

Laut meinem Plan müsste nun die erste Eingabe kommen (Ich habe allerdings bemerkt, dass auch schon im letzten Tutorial ein Input reingerutscht ist, hab ich wohl übersehen ^^).

In der Theorie sieht die so aus:

Input "Eingabe:",A

In diesem Beispiel würde nun das, was der User eingibt, in der Variable A gespeichert. Mit dieser Variable kann man dann machen was man will, zum Beispiel sie ausgeben.

Wir werden nun mal einen kleinen Additionierer schreiben, also ein Taschenrechner, der nur Plus rechnen kann.

ClrHome
Disp "ADDITIONIERER"
Input "VARIABLE A:",A
Input "VARIABLE B:",B
Disp "SUMME:"
Disp A+B

Doch hier muss der User seine Eingabe ja immer mit ENTER bestätigen: Für ein actionreiches Spiel reicht es also nicht.

Dafür gibts die Funktion

getKey->A

(A ist natürlich nur eine Variable)
Wenn wir nun schreiben:

Lbl A:
getKey->A
If (A > 0)
Disp A
Goto A

Die if-Verzweigung muss hier rein, da sonst die ganze Zeit 0 ausgegeben würde, denn wenn keine Taste gedrückt wurde, ist der Wert von getKey 0.

Wenn man nun verschiedene Tasten drückt kann man die Zahlencodes für sie sehen.
Die Pfeiltasten haben z.B. für oben 25, für rechts 26, für links 24 und für unten 34. 34?
Ja richtig gelesen, denn der Code für die Tasten berechnet sich folgendermaßen:
Die erste Zahl ist die Zeile und die zweite ist die Spalte in der die Taste steht.
Y= ist ja die erste Taste ganz oben. Logischerweise hat sie den Code 11. WINDOW 12, 2nd 21 usw.
Da die Unten-Pfeiltaste zur dritten Zeile gerechnet wird, hat sie den Wert 34.
Diese Eingabemöglichkeit wird auch in dem Spiel von mir ganz unten verwendet.

Noch was zum Schluss:
Wenn ihr, während ihr im Editor seid, auf
PRGM->EXEC geht, eins auswählt und ENTER drückt, wird dieses Programm dann gestartet, wenn euer Programm bei diesem Befehl (prgmNAMEDESPRGMS) ankommt. Natürlich nur wenn dieses Programm auf dem Taschenrechner auch existiert.

Ganz zum Schluss veröffentliche ich hier nochmal den Quellcode für eines meiner Spiele: ein kleiner Snake Klon, mit KI und ohne Schwanz:

ClrHome
Output(3,5,"SNAKE")
Output(4,3,"PRESS ENTER")
Output(8,2,"CODE BY DUBBEL")
6->X
5->Y
5->B
7->D
15->E
0->P
7->N
5->O
Pause
Output(1,1,"++++++++++++++++")
Output(2,1,"+              +")
Output(3,1,"+              +")
Output(4,1,"+              +")
Output(5,1,"+              +")
Output(6,1,"+              +")
Output(7,1,"+              +")
Output(8,1,"++++++++++++++++")
Output(N,O,"*")

Lbl A:
0->C
0->G
getKey->A
If(A=26)
Then
Output(Y,X," ")
1->B
X+1->X
1->C
End
If(A=24)
Then
Output(Y,X," ")
2->B
X-1->X
1->C
End
If(A=25)
Then
Output(Y,X," ")
3->B
Y-1->Y
1->C
End
If(A=34)
Then
Output(Y,X," ")
4->B
Y+1->Y
1->C
End

If(C=0):Then
Output(Y,X, " ")

If(B=1):Then
X+1->X:End
If(B=2):Then
X-1->X:End
If(B=3):Then
Y-1->Y:End
If(B=4):Then
Y+1->Y:End
End

Output(D,E," ")
If(Q=1):Then
If(Y>D):Then
D +1->D:1->G:End
If(Y<D):Then
D -1->D:1->G:End
If (G=0):Then
If(X>E):Then
E+1->E:End
If(X<E):Then
E-1->E:End
End:0->Q
Else
1->Q:End
Output(D,E,"+")
If((Y=D and X=E) or (Y<2) or (Y>7) or (X<2) or (x>15)):Then
ClrHome
Output(1,5,"GAME OVER!")
Output(2,9,P)
Output(3,7,"PUNKTE")
Output(4,4,"PRESS ENTER")
Output(6,5,"VISIT:")
Output(7,7,"WWW.")
Output(8,1,"HAUKELUEBBERS.DE")
Pause
prgmSNAKE
Else
Output(Y,X,"O")
End
P +1->P
If(N=Y and O=X):Then
P +100->P
randInt(2,7)->N
randInt(2,14)->O
End
Output(N,O,"*")

Output(1,7,P)
Wurzel_aus(113.1337^5)
453.45/45.5^2
66/66^5*3
Goto A
This entry was posted in Programmierung, TI-BASIC and tagged , , , , , , , , , . Bookmark the permalink.

114 Responses to TI BASIC Tutorial 4

  1. deinemo says:

    snake ist toll aber wie kommst du auf sowas?

  2. deinemo says:

    wo ist das mit der wurzel aus??

  3. Dubbel says:

    Wurzel_aus war nur eine Pseudo-Funktion, da ich das echte Wurzel-Zeichen nicht darstellen konnte. Um die Wurzel-Funktion auf dem Taschenrechner zu finden, musst du 2nd + x² drüken ;)

  4. schneif says:

    mit welchem TI Cas hast du das geschrieben? ich habe einen voyage 200

    • Dubbel says:

      Mit dem TI 83+ – mit den anderen kenn ich mich leider nicht aus…vielleicht sind einige Befehle unterschiedlich, aber an sich müsste die Grundsyntax gleich bleiben

  5. Nocke says:

    Mein taschenrechner(ti-84+) hat ein problem mit
    :End:0->Q
    was kann denn das sein

  6. Dubbel says:

    Hi Nocke!
    Da ist mir wohl ein Fehler unterlaufen, vielen Dank für den Hinweis.
    Zwei Zeilen über dem
    :End:0->Q
    habe ich nun ein
    :If(X<E):Then
    ergänzt.
    Jetzt sollte es eigentlich klappen…

  7. Zohan says:

    Schade, irgentwas klappt da bei mir nicht. Wenn ich das programm ausführ schaff ichs bis zu der Anzeige ” Snake press enter” und die +e am rand, wenn ich dann aber enter drück kommt der tolle syntax Error :( bin nochma alles durchgegangen ein tippfehler ist mir nicht aufgefallen. Ich habe den Ti 82 stats. Lg und Danke im Vorraus (PS: den outputbefehl mit Visit http://www.haukeluebbers.de hatte ich absichtlich weggelassen weil er bei mir warscheilnich über den displayrand gekommen wär)

  8. Zohan says:

    Hehe, hat sich schon erledigt, jz klappts :) war doch nur n doofer veripper^^
    Danke,machst echt gute Tuts! Lg

  9. DMOE says:

    Bei mir gehts nit (TI-48plus9
    ichfind den fehler nicht
    Fehlermaldung in zeile 58 die rechte klammer
    was ist da falsch?????

  10. Dubbel says:

    Hast du alle Kommas und Anführungszeichen beachtet?

    Sonst poste hier mal die 5 Zeilen um den Fehler herum hier…an dem Code oben liegts vermutlich nicht, da er ja bei anderen funktioniert hat ^^

    Aber ohne deinen Code kann ich den Fehler auch nicht sehen ^^

  11. TaschenrechnerFreak says:

    Hi,
    der Code ist cool(endlich mal was, wenn man kein Verbindungskabel hat)
    Aber wie mache ich = und die und “and” und “or”?

    Gruß,
    TaschenrechnerFreak

  12. TaschenrechnerFreak says:

    jetz fehlen die “kleiner als und “größer als” im Kommentar…

  13. Dubbel says:

    Wenn man 2nd + MATH (also Test) drückt, dann kann man die verschiedenen Operatoren wählen.
    Direkt daneben, in dem Feld LOGIC (2nd + MATH + Nach Rechts) findet man die AND/OR-Sachen.

    Im Zweifelsfall findet man alle Befehle auch unter 2nd + 0 im Catalog ;)

  14. HaukesKekse says:

    Also ich habs ja auch mal versucht (mit deinem Programm)und es klappte auch nicht.
    Aber mal ganz im ernst: Ist ein schwanzloser Snake-Klon nicht ein wenig, nun ja, witzlos ??!

    xD Ich mein ja nur.. Spiel mal Blockdude ohne Steine…

    gern geschehen ^^

    P.S.: Deine Basics an sich sind aber mal echt große klasse ;)

  15. Pikkolini says:

    Bei mir funktionierts FAST
    aber anstatt ner schlange ist bei mir immer nur eine 0 auf dem bildschirm und bewegen kann ich auch nichts…
    ich hab einen TI 82 STATS

  16. Lord Mampf says:

    sehr gute mal etwas in der art zu machen
    bei mir ist ein fehler in der 30. Zeile bei der letzten Klammer
    das ) is falsch..

    *dieser stern ist der ein mal zeichen?
    und
    Output(Y,X,” “) in das zwischen den ” eine normale lücke also Alpha+0?

    bin noch ein anfänger hab einen 83+ seit 3Tagen

  17. Dubbel says:

    jub, dass ist das Leerzeichen-Zeichen.

    Von hier aus kann ich dir leider nicht sagen, was dein Problem ist, ohne deinen Code zu sehen. Alle Klammern korrekt wieder geschlossen, alle Anführungszeichen wieder beendet?

    Der Stern steht für das Mal-Zeichen ja.

    Ich kann dir sonst von hier aus leider nicht weiterhelfen ^^
    Im Zweifelsfall hier einfach genau deinen Code posten, aber es ist vermutlich besser, erstmal selbst nochmal alls zu checken ;)

  18. Urinator says:

    Moinmoin.
    Ich teste es grade.

    Ich hab erstmal (zum testen) nur Output (2,3,”hi”) (und sehr viele andere konstellationen) ausprobiert, und er sagt mir, es würde eine “)” fehlen.

    Kann es sein, dass der ti voy200 den output-befehl anders implementiert?

    lg aus dem sonnigen norden,
    Urinator (lat. der Pisser)

  19. Dubbel says:

    Was passiert, wenn du das schleißende ” weglässt?

    Sry, mit dem Voy200 kenn ich mich nicht aus, aber hier sind n paar Zusatzinfos:
    http://en.wikibooks.org/wiki/TI-Basic_Programs
    http://en.wikibooks.org/wiki/TI-Basic

    Zitat Wikipedia:
    “Versions of TI-BASIC

    The main versions of TI-BASIC in use today are the following two:

    * The TI-BASIC that comes with the TI-89, TI 89 Titanium, TI-92, TI-92 Plus and Voyage 200 calculators. This is the more powerful version of TI-BASIC.

    * The TI-BASIC that comes with the TI-83, TI-83+, TI-83+ Silver Edition, TI-84+ and TI-84+ Silver Edition calculators. This is a less powerful version of TI-BASIC than the previous one, but still can be used to make many different types of programs.”

  20. philippw says:

    Echt der Hammer das Spiel!
    Respekt für diese Leistung!
    Das mit dem Programmieren in langweiligen Mathe-Stunden kenn ich…
    Aber ich hätte nie so ein Programm schreiben können
    Wegen finanzieller Entlastung der Eltern hat die ganze Klasse leider nur den TI-82-Stats bekommen.
    Das Programm läuft zwar, dennoch hätte ich ein paar Fragen:
    1.Sollte die Schlange als blinkende 0 dargestellt werden
    2.Warum bewegt sie sich nicht von Anfang an – man kann nämlich auch einfach nichts drücken und kassiert dabei Punkte
    3.Wenn ich das * fresse, passiert nichts.Warum?
    4.Bewegt sich das * auch einmal an eine andere Stelle?

    lg aus Tirol,
    philippw
    ^^calculator noster amamus^^

  21. philippw says:

    Sry, meine natürlich “computatorem nostrum amamus”

  22. maxcharpentir says:

    hi

    ich hab dein spiel programmiert .
    es läuft aber nich richtig
    bei mir blinkt immer eine null und ein plus wandert von dem bildschirm links unten aus er ecke ein plus nach links und stöst dann gegen ein mal zeichen
    und es spelen sich am oberen bildschirm rand immer die zahlen von0-keine ahnung ab und werden immer langsamer

    ich hab den ti-82 stats

  23. philippw says:

    Problem gelöst, alles nur Tippfehler. Modifizierte das Programm noch ein bisschen nach meinem Geschmack, läuft perfekt…

  24. ich says:

    wo ist die 2nd taste ich kann nicht auf die operatoren zugreifen ich hab ti nspire cas und finde die da nicht
    hilfe

  25. recker says:

    wie macht man einen Slasch

  26. Dubbel says:

    Geteilt durch? Bei +,-,* und eben / ^^
    Oder hab ich dich falsch verstanden? ^^

  27. Dude88 says:

    coole idee
    ich habe jedoch ein problem bei der 84 zeile, wen ich das programm ausführe und es 3 nullen lädt, kommt eine fehlermeldung und verweisst mich auf diese zeile?, woran könnte das liegen?

  28. Dubbel says:

    Hmm…ohne deinen Code zu kennen kann ich dir leider nicht wirklich helfen. Was für einen TR hast du und was hast du genau geschrieben in den 5 Zeilen um die Fehlermeldung herum?

  29. Ich says:

    Ich meinte:

    Ich habe den TI-82 und in Zeile 74 muss es heissen:
    : If (YD):Then

    und in Zeile 100:
    If(N=Y and O=X):Then

    nicht:
    If(N=Y and 0=X):Then

    @philippw, dann passiert auch was, wenn du das Teil frisst…

  30. Ich says:

    Tut mir leid, aber die Zeichen stellt der nicht da, wenn ich auf Kommentar abschicken klicke, Sorry

  31. Dubbel says:

    Es gibt eine Code-Funktion

    Wenn ihr den Code zwischen [ code ] hier steht euer Code [ / code] – nur ohne die Leerzeichen – schreibt, werden alle Zeichen zugelassen.

    Das ist eine Vorsichtsmaßnahme und unerlaubtes Javascipt (XSS) auf diesem Blog zu verhindern. :)

  32. Ich says:

    Ich habe den TI-82 und in Zeile 74 muss es heissen:

    If(Y<D):Then
    

    nicht:

    If(Y>D):Then
    

    …und in Zeile 100:
    :If(N=Y and O=X):Then

    nicht:
    :If(N=Y and 0=X):Then

    @philippw, dann passiert auch was, wenn du das Teil frisst…

    Ansonsten: Super Spiel!
    Vielen Dank

  33. Ssssusrgf says:

    Hast du auch die Quellcodes von anderen Spielen?

  34. Kolak says:

    Bei mir funktioniert das spiel nicht, ich hab jetzt alles nach den Kommentaren verändert und trotzdem geht das Teil nur bis 21 Punkte, egal was ich drücke.
    Was soll eigentlich die Schlange darstellen.

  35. klaus says:

    weiß ich nicht?

    Admin: Satzzeichen sind keine Rudeltiere.

  36. klaus says:

    Bei so viel tippkram musst du immer 8 fach übeprüfen!

  37. Bug says:

    hi, ich bin neu inder welt des programmierens, habe schon einen taschenrechner geschrieben und das Programm aus tutorial 3 etwas erweitert, doch ich versteh dein programm nicht…

    könntest du vll. mal ein paar kommentare hinzufügen, so wie in tutorial 3, damit ich es auch verstehen würde… denn ich versteh so einiges nicht, und vll. ist das was ich denke zu verstehen falsch…

    wäre sehr nett… und schonmal im vorraus danke für die tutorials und deine hilfe.

    MfG
    Bug

    PS: de tutorials sind echt klasse

  38. christian says:

    ich wei´ß es ist aufwendig aber könntest du mir eine genaue erklärung zu diesem Program ‘Snake’ schicken. denn ich möchte selber programmieren lernen und es wäre hilfreich wozu die einzelnen befehle dienen .
    wenn es dir keine umstände macht könntest u mir es dann bitte per e-mail schicken?
    christian.roeskens@ewetel.net
    danke

  39. christian says:

    mann ich habe wieder zu schnell getippt:
    also der kommentar ging an dubbel
    und es wäre halt hilfreich zu wissen wozu die einzelnen befehle dienen da ich ja ein neuling bin und es bringt mir nichts wenn ich das abtippe aber nicht weiß was wozu gehörtoder wie funktioniert

  40. Bug says:

    hey, ich habs verstanden, das snakeprogramm, und hab sogar einen schwanz hinzuprogrammiert, und häng gerade an dem multiplayer, aber egal :)

    klick oben unter TI BASIC Tutorial 4 auf tibasic, und dann les dir das programm inpong oder so durch, da sind kommentare daei, und es ist nach einem ähnlichen schema geschrieben, wenn du das verstanden hast, dann probier es nochmal mit snake

  41. Dubbel123 says:

    @christian: Gute Idee, mach ich beizeiten, bin gerade etwas im Klausurenstress…aber die Herbstferien sind ja auch nichtmehr soo weit weg :)

    @Bug: Wow, nicht schlecht :D
    Wenn du Lust hast kann du ja den Quellcode mal veröffentlichen, und etwas dazu schreiben ;)

  42. christian says:

    @Dubbel :noch eine frage: wäre es möglich, dass du das ganze mal für einen voyage 200 programmierst.ich weiß du kennst dich nich damit aus aber die befehle gibts im I-net und wenn du dann den code fertig hast kann ich ihn ja mal an meinem ti testen (voyage 200)

  43. Dubbel says:

    Ich denke, es ist sinnvoller, wenn du das selber für den Voyage 200 programmierst.
    Alle Befehle raussuchen dauert ewig, und ich müsste dir die ganze Zeit Testversionen schicken, die du dann wieder eingeben müsstest – umständlich.

    Aber wenn du das Spiel auch für den V200 umsetzen würdest, könnten wir den Code hier veröffentlichen, natürlich unter deinem Namen :)

  44. nick says:

    hi
    bei mir funktioniert das spiel im prinzip. wenn ich jedoch nach rechts drücke geht der nach links und wenn ich links drücke passiert nichts. weißt du wo der fehler liegen könnte? bzw. könntest du mir sagen wo zeilen sind wo ich mal nach einem tippfehler schauen sollte? dank schonmal^^

  45. Anounymus says:

    hi Dubbel,
    mein TI-82 Stats hat ein Problem in Zeile 82 mit dem Else. Weisst du woran das liegen könnte?
    Wenn ich das Programm starte komm ich bin zum “Press Enter bildschirm dann kommt:
    Err:Syntax
    1:Quit
    2:Goto
    bei Goto geht er dann bis zur Fehlerzeile

  46. Anounymus says:

    ich hätte noch eine Frage, in Zeile 13 das P ause ist das richtig so oder soll das Pause heissen? weil P ause gibt’s auf meinem TR nicht.

  47. Dubbel says:

    Ja, es geht in Zeile 13 tatsächlich um “Pause”, ich werde das gleich ändern

    Bei deinem anderen Problem kann ich dir von hier aus nicht helfen, poste am besten mal deinen Code im TR hier, meistens fällt den Leuten dann der Vertipper auf ;)

  48. Anounymus says:

    Der Code ist genau derselbe wie der den du oben gepostet hast, ich hab den Code jetzt schon 4mal neu geschrieben, immer dasselbe. Trotzdem Danke

  49. Dubbel says:

    Hast du auch den gesamten Code von Zeile 70 – 82 überprüft? Ich vermute, dass irgendwo ein Then oder ein End fehlt/zuviel ist.

    Viel Glück ;)

  50. Taschenrechnerbesitzer says:

    Hallo,
    Der Code ist wirklich super, ich habe ihn jetzt nach den Kommentaren geändert! Wisst ihr, wo man noch mehr Spiele für den TI bekommen kann, ich habe bis jetzt nur auf
    http://www.lukitools.de
    was gefunden, aber da stehen keine Codes… Für Tipps bin ich Dankbar!!!

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>