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 ClrHome 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) √(113.1337^5) 453.45/45.5^2 66/66^5*3 Goto A
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
https://www.lukitools.de
was gefunden, aber da stehen keine Codes… Für Tipps bin ich Dankbar!!!
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 ;)
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
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 ;)
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.
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
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^^
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 :)
@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)
@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 ;)
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
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
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
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
Bei so viel tippkram musst du immer 8 fach übeprüfen!
weiß ich nicht?
Admin: Satzzeichen sind keine Rudeltiere.
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.
Hast du auch die Quellcodes von anderen Spielen?
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
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. :)
Tut mir leid, aber die Zeichen stellt der nicht da, wenn ich auf Kommentar abschicken klicke, Sorry
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…
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?
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?
Geteilt durch? Bei +,-,* und eben / ^^
Oder hab ich dich falsch verstanden? ^^