Webworker.
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
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.
41 Kommentare zu TI BASIC Tutorial 4
deinemo
08.03.2009 um 16:47
snake ist toll aber wie kommst du auf sowas?
deinemo
10.03.2009 um 14:33
wo ist das mit der wurzel aus??
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
schneif
18.03.2009 um 16:48
mit welchem TI Cas hast du das geschrieben? ich habe einen voyage 200
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
Nocke
03.06.2009 um 21:18
Mein taschenrechner(ti-84+) hat ein problem mit
:End:0->Q
was kann denn das sein
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…
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)
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
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?????
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 ^^
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
TaschenrechnerFreak
09.10.2009 um 12:06
jetz fehlen die “kleiner als und “größer als” im Kommentar…
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
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
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
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
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
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)
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.”
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^^
philippw
12.12.2009 um 14:20
Sry, meine natürlich “computatorem nostrum amamus”
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
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…
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
recker
31.01.2010 um 12:00
wie macht man einen Slasch
Dubbel
31.01.2010 um 18:19
Geteilt durch? Bei +,-,* und eben / ^^
Oder hab ich dich falsch verstanden? ^^
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?
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?
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…
Ich
03.05.2010 um 15:45
Tut mir leid, aber die Zeichen stellt der nicht da, wenn ich auf Kommentar abschicken klicke, Sorry
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.
Ich
03.05.2010 um 20:24
Ich habe den TI-82 und in Zeile 74 muss es heissen:
nicht:
…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
Ssssusrgf
04.05.2010 um 16:22
Hast du auch die Quellcodes von anderen Spielen?
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.
klaus
12.06.2010 um 15:38
weiß ich nicht?
Admin: Satzzeichen sind keine Rudeltiere.
klaus
20.08.2010 um 17:00
Bei so viel tippkram musst du immer 8 fach übeprüfen!
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
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
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
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