TI BASIC Tutorial 4

In: Programmierung|TI-BASIC

8 Dez 2008

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
P ause
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 0=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

41 Kommentare zu TI BASIC Tutorial 4

Avatar

deinemo

08.03.2009 um 16:47

snake ist toll aber wie kommst du auf sowas?

Avatar

deinemo

10.03.2009 um 14:33

wo ist das mit der wurzel aus??

Avatar

Dubbel

10.03.2009 um 15:45

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 ;)

Avatar

schneif

18.03.2009 um 16:48

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

Avatar

Dubbel

24.03.2009 um 11:05

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

Avatar

Nocke

03.06.2009 um 21:18

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

Avatar

Dubbel

05.06.2009 um 16:50

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…

Avatar

Zohan

09.07.2009 um 13:45

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)

Avatar

Zohan

09.07.2009 um 13:51

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

Avatar

DMOE

02.10.2009 um 13:05

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

Avatar

Dubbel

03.10.2009 um 10:39

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 ^^

Avatar

TaschenrechnerFreak

09.10.2009 um 12:05

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

Avatar

TaschenrechnerFreak

09.10.2009 um 12:06

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

Avatar

Dubbel

09.10.2009 um 14:39

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 ;)

Avatar

HaukesKekse

20.10.2009 um 21:08

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 ;)

Avatar

Pikkolini

30.10.2009 um 16:01

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

Avatar

Lord Mampf

05.11.2009 um 19:12

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

Avatar

Dubbel

05.11.2009 um 21:14

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 ;)

Avatar

Urinator

23.11.2009 um 23:00

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)

Avatar

Dubbel

24.11.2009 um 23:34

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

Avatar

philippw

11.12.2009 um 19:18

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^^

Avatar

philippw

12.12.2009 um 14:20

Sry, meine natürlich “computatorem nostrum amamus”

Avatar

maxcharpentir

16.12.2009 um 20:11

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

Avatar

philippw

17.12.2009 um 19:05

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

Avatar

ich

25.01.2010 um 16:22

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

Avatar

recker

31.01.2010 um 12:00

wie macht man einen Slasch

Avatar

Dubbel

31.01.2010 um 18:19

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

Avatar

Dude88

10.03.2010 um 12:17

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?

Avatar

Dubbel

21.03.2010 um 17:49

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?

Avatar

Ich

03.05.2010 um 15:44

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…

Avatar

Ich

03.05.2010 um 15:45

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

Avatar

Dubbel

03.05.2010 um 16:23

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. :)

Avatar

Ich

03.05.2010 um 20:24

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

Avatar

Ssssusrgf

04.05.2010 um 16:22

Hast du auch die Quellcodes von anderen Spielen?

Avatar

Kolak

31.05.2010 um 18:01

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.

Avatar

klaus

12.06.2010 um 15:38

weiß ich nicht?

Admin: Satzzeichen sind keine Rudeltiere.

Avatar

klaus

20.08.2010 um 17:00

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

Avatar

Bug

06.09.2010 um 19:54

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

Avatar

christian

08.09.2010 um 19:37

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

Avatar

christian

08.09.2010 um 19:45

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

Avatar

Bug

09.09.2010 um 23:03

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

Sag deine Meinung:

Über diesen Blog

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.

  • Bug: hey, ich habs verstanden, das snakeprogramm, und hab sogar einen schwanz hinzuprogrammiert, und hän [...]
  • christian: mann ich habe wieder zu schnell getippt: also der kommentar ging an dubbel und es wäre halt hilfr [...]
  • christian: ich wei´ß es ist aufwendig aber könntest du mir eine genaue erklärung zu diesem Program 'Snake' [...]
  • Bug: hi, ich bin neu inder welt des programmierens, habe schon einen taschenrechner geschrieben und das P [...]
  • klaus: Bei so viel tippkram musst du immer 8 fach übeprüfen! [...]