Teil 5: Der Getkey-Befehl und das erste kleine Spiel

BASIC-Tutorial für Einsteiger von sim111

Teil 5: Der Getkey-Befehl und das erste kleine Spiel

Beitragvon saubue am 5. Juli 2008 13:49

In diesem Programm kannst du mit den Pfeiltasten eine Art Zielkreuz bewegen, um vorgegebene Ziele „abzuschießen“!

Code: Alles auswählen
ClrHome
1-->S
0-->I
2-->A
2-->B
0-->D
0-->E

Lbl 1
randInt(1,7-->D
randInt(2,15-->E
While S=1

If A<1:A+1-->A
If A>8:A-1-->A
If B<2:B+1-->B
If B>15:B-1-->B

Output(A,B," "
Output(A,B-1,"["
Output(A,B+1,"]"
Output(D,E,"O"
GetKey-->C
If C=25
Then
A-1-->A
Output(A+1,B-1," "
Output(A+1,B+1," "
End
If C=24
Then
B-1-->B
Output(A,B+2," "
Output(A,B," "
End
If C=26
Then
B+1-->B
Output(A,B," "
Output(A,B-2," "
End
If C=34
Then
A+1-->A
Output(A-1,B+1," "
Output(A-1,B-1," "
End
If C=21 and A=D and B=E
Then
I+1-->I
Goto 1
End
If C=45
Then
ClrHome
Stop
End
If C=105
Then
Output(4,6,"PAUSE!"
Pause
ClrHome
End

If I=10
Then
Output(1,1,"Gewonnen!
Pause
ClrHome
2-->S
End
End


Hier ist noch ein Screenshot von dem Spiel, damit ihr wisst wie das Spiel ungefähr aussehen sollte:
Bild



Erläuterung der neuen Befehle

GetKey-->C
Der GetKey Befehl ist wohl einer der wichtigsten Befehle für BASIC-Spiele auf dem TI83+!
Er speichert eine Zahl für jede Taste die man drückt, in eine Variable. (In diesem Fall in die Variable C)
Allerdings ändert sich der Wert natürlich jedes Mal, wenn man eine Taste drückt!

Hier ist eine Übersicht über alle Tasten und welchen Wert sie ausgeben:
Bild


Tipp: Du brauchst dir eigentlich nur eine Zahl merken, den Rest kannst du dir ausrechnen! Nämlich für jede Tasten-Reihe runter, einen 10ner mehr und für jede Zahl nach links 1nen mehr! Wenn du das jetzt verstanden hast... ;-)

Ende
Wenn du den Programmtext von diesem Spiel verstanden hast, kannst du mittlerweile auch schon viel anspruchvollere Programme schreiben! Viel Spaß! :)
Bei sonstigen Fragen einfach eine PM an mich schicken oder im Forum posten!



----------------------------------------
by sim111
"All animals are equal. But some animals are more equal than others." - George Orwell (Animal Farm)

boolsoft - software development for texas instruments 68k calculators
Benutzeravatar
saubue
Administrator
Administrator
 
Beiträge: 1434
Registriert: 11. März 2005 13:55
Wohnort: Freiburg im Breisgau

Re: Teil 5: Der Getkey-Befehl und das erste kleine Spiel

Beitragvon saubue am 5. Juli 2008 13:52

Beitrag von fadtma:

saubue hat geschrieben:Tipp: Du brauchst dir eigentlich nur eine Zahl merken, den Rest kannst du dir ausrechnen! Nämlich für jede Tasten-Reihe runter, einen 10ner mehr und für jede Zahl nach links 1nen mehr! Wenn du das jetzt verstanden hast... Wink


das sollte vermutlich "für jede Zahl nach rechts 1nen mehr" heissen.

Aber stempelt mich jetzt bitte nicht als Korinthenkacker ab :D
Benutzeravatar
saubue
Administrator
Administrator
 
Beiträge: 1434
Registriert: 11. März 2005 13:55
Wohnort: Freiburg im Breisgau

Re: Teil 5: Der Getkey-Befehl und das erste kleine Spiel

Beitragvon saubue am 5. Juli 2008 13:53

Beitrag von JDB:

ich fand dieses tutorial leider net so gut, weil es nicht lauffähig ist. Der Quelltext enthält fehler.

Lbl 1
randInt(1,7-->D
randInt(2,15-->E
While S=1 ------- !!FEHLER!! Die While-schleife hat keine BEFEHLE !

If A<1:A+1-->A
If A>8:A-1-->A
If B<2:B+1-->B
If B>15:B-1-->B

Falls ich irgendwas falsch erkannt habe klärt mich bitte auf!
P.S: If A<1:A+1-->A ------ was soll eigentlich der doppelpunkt und warum folgt auf das if kein then ?
Benutzeravatar
saubue
Administrator
Administrator
 
Beiträge: 1434
Registriert: 11. März 2005 13:55
Wohnort: Freiburg im Breisgau

Re: Teil 5: Der Getkey-Befehl und das erste kleine Spiel

Beitragvon saubue am 5. Juli 2008 13:55

Beitrag von General:

klaro enthält eine While Schleife Anweisungen guck dir mal meine Tutorial im TI-84+ forum an, da is ein ausüfhrliches zu Schleifen. Und den Doppelpunkt erkläre ich dir so
man kann
Code: Alles auswählen
A=5
B=10
C=20
...
schreiben oder so
Code: Alles auswählen
A=5:B=10:C=20
um platz zu sparen oder einfach nur um nicht immer auf enter zu drücke, oder was weiß ich warum. kann man den doppelpunkt als Enterersatz nehmen ;) so hoffe es hat sich geklärt, wenns fragen zu den Schleifen gibt dann einfach melden.
Benutzeravatar
saubue
Administrator
Administrator
 
Beiträge: 1434
Registriert: 11. März 2005 13:55
Wohnort: Freiburg im Breisgau

Re: Teil 5: Der Getkey-Befehl und das erste kleine Spiel

Beitragvon saubue am 5. Juli 2008 13:55

Beitrag von NanoWar:

Wenn auf ein If kein Then folgt, wird nur der nächste Befehl bei einer wahren Aussage ausgeführt.
Code: Alles auswählen
0
If 0
Ans+1
Disp Ans

Ans würde als 0 angezeigt.
Benutzeravatar
saubue
Administrator
Administrator
 
Beiträge: 1434
Registriert: 11. März 2005 13:55
Wohnort: Freiburg im Breisgau

Re: Teil 5: Der Getkey-Befehl und das erste kleine Spiel

Beitragvon Mäxle am 11. November 2010 20:08

Hey ^^ Hab ne frage, und zwar wie mach ich eine neue Zeile wenn ich quasi schon 2 hab also ich will eine neue zeile zwischen den 2?xD
Mäxle
Mobi Newbie
Mobi Newbie
 
Beiträge: 1
Registriert: 11. November 2010 20:04

Re: Teil 5: Der Getkey-Befehl und das erste kleine Spiel

Beitragvon Mr_ZBot am 11. November 2010 23:01

Was meinst du? Wie du eine Zeile im Code einfügen kannst? Das geht mit Insert (2nd+Del)...
Ich irre nie. Das einzige mal, dass ich irrte, war, als ich dachte, ich irre.

̿̿ ̿̿ ̿̿ ̿̿'\̵͇̿̿\=((•̪●))=/̵͇̿̿/'̿̿ ̿̿ ̿̿ ̿̿
Benutzeravatar
Mr_ZBot
Mobirator
Mobirator
 
Beiträge: 795
Registriert: 24. März 2008 18:28
Wohnort: Hinterm Berge 7

Re: Teil 5: Der Getkey-Befehl und das erste kleine Spiel

Beitragvon Sergej am 15. Oktober 2013 01:09

Eine starke Vereinfachung deiner 8 If-Bedingungen (innerhalb der While-Schleife) für die Pfeiltasten und das Nichtüberschreiten des Bildschirms:

:If C
:Then
:Output(A,B-1," "
:Output(A,B+1," "
:A-(C=25)(A>1)+(C=34)(A<8)-->A
:B-(C=24)(B>1)+(C=26)(B<16)-->B
:End

Damit spart man sich 21 Zeilen.

MfG
Sergej
Benutzeravatar
Sergej
Mobi
Mobi
 
Beiträge: 50
Registriert: 17. Juni 2006 12:42


Zurück zu BASIC-Tutorial TI83 (Plus), TI84 (Plus)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast