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) √(113.1337^5) 453.45/45.5^2 66/66^5*3 Goto A
