KAPITEL 16
VER·
SCHIEDENE
TECHNIKEN
SIMULATION VON
KARTENSPIELEN
Programm
Ein- und Ausgabe
Kommentar
96
In diesem letzten Abschnitt stellen wir einige Anwendungen von schon besproche-
nen Konzepten und Möglichkeiten vor und zeigen, wie einige weitergehende Ideen
angewandt werden können.
Spielkarten können problemlos gespeichert und verarbeitet werden, indem sie mit
den Zahlen 1 bis 52 dargestellt werden. Auf diese Weise kann jede Zahl in eine ent-
sprechende Karte umgewandelt werden. Angenommen, die Nummer 29 wird ange-
zeigt. Hier können Sie nun folgende Entscheidung treffen:
Karten 1 bis 13 gleich Herz
Karten 14 bis 26 gleich Kreuz
Karten 27 bis 39 gleich Karo
Karten 40 bis 52 gleich Pik
Somit wissen Sie, daß 29 "Karo" bedeutet. Den QL können Sie mit folgendem Befehl
auf diese Weise programmieren:
=
LET farbe
(karte
Dadurch wird ein Wert zwischen 0 und 3 berechnet, mit dem die entsprechende
Farbe ausgedruckt werden kann. Der Wert kann auf den Bereich von 1 bis 13
beschränkt werden, indem folgende Anweisungen geschrieben werden:
LET wert
karte
MOD13
=
=
IF wert
0 THEN LET wert
Die Zahlen 1 bis 13 können als As, 2, 3 ... , Bube, Dame, König oder gegebenenfalls
Begriffe wie "Herz Zwei" ausgedruckt werden. Mit dem folgenden Programm wird
der Name der Karte ausgedruckt, die der eingegebenen Zahl entspricht.
100 REMark SpieLkarten
110 DIM farbe$(3,5),karte$(13,5)
120 einLesen
130 REPeat karten
140
INPUT "Geben
karte
150
IF karte<1
=
160
LET farbe
170
LET wert
karte
=
180
IF wert
0 THEN LET wert
=
190
PRINT farbe$(farbe)
200 END REPeat karten
210 DEFine PROCedure einLesen
=
220
FOR f
0 TO 3 : READfarbe$(f)
=
230
FOR k
1 TO 13 : READ karte$(k)
240 END DEFine
250 DATA"Herz",
260 DATA"Ass","Zwei",
"Sechs",
270 DATA"Acht",
"Dame",
2
Herz Zwei
2
Herz Zwei
49
Pi k Zehn
Beachten Sie bitte die Anwendung der DATA-Anweisungen. Dadurch wird praktisch
eine Datei definiert, in der Daten bereitgehalten werden, die das Programm bei jeder
Ausführung benötigt. Die anderen Daten, die sich bei jeder Ausführung des Pro-
- 1) DIV 13
=
13
Sie eine
Kartennummer
OR karte>52
THEN EXIT karten
(karte-1)
DIV 13
MOD13
13
=
! karte$(wert)
"Kreuz",
"Karo",
"Drei",
"Vier",
"Sieben"
"Neun",
"Zehn",
"König"
1 - 52 ein·"
"Pik"
"Fünf",
"Bube",
3/85
(