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

snake ist toll aber wie kommst du auf sowas?
wo ist das mit der wurzel aus??
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 ;)
mit welchem TI Cas hast du das geschrieben? ich habe einen voyage 200
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
Mein taschenrechner(ti-84+) hat ein problem mit
:End:0->Q
was kann denn das sein
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…
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)
Hehe, hat sich schon erledigt, jz klappts :) war doch nur n doofer veripper^^
Danke,machst echt gute Tuts! Lg
Bei mir gehts nit (TI-48plus9
ichfind den fehler nicht
Fehlermaldung in zeile 58 die rechte klammer
was ist da falsch?????
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 ^^
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
jetz fehlen die “kleiner als und “größer als” im Kommentar…
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 ;)
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 ;)
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
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
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 ;)
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)
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.”
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^^
Sry, meine natürlich “computatorem nostrum amamus”
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
Problem gelöst, alles nur Tippfehler. Modifizierte das Programm noch ein bisschen nach meinem Geschmack, läuft perfekt…
wo ist die 2nd taste ich kann nicht auf die operatoren zugreifen ich hab ti nspire cas und finde die da nicht
hilfe
wie macht man einen Slasch
Geteilt durch? Bei +,-,* und eben / ^^
Oder hab ich dich falsch verstanden? ^^
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?
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 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…
Tut mir leid, aber die Zeichen stellt der nicht da, wenn ich auf Kommentar abschicken klicke, Sorry
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 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
Hast du auch die Quellcodes von anderen Spielen?
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.
weiß ich nicht?
Admin: Satzzeichen sind keine Rudeltiere.
Bei so viel tippkram musst du immer 8 fach übeprüfen!
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
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
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
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
@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 ;)
@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)
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 :)
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^^
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
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.
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 ;)
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
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 ;)
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!!!