← ST-Computer 02 / 1986

SUPERCODE: Ein Denkspiel

Listing

Bei diesem Denkspiel geht es darum einen Geheimcode, den der Computer erzeugt, zu erraten. Jeder Versuch wird dabei bewertet, das heißt, daß angegeben wird wieviel Zahlen mit denen des Geheimcodes in Wert und Stelle ĂŒbereinstimmen. Das Programm malt dann die entsprechende Anzahl von KĂ€stchen ’SCHWARZ’ aus. Wenn die Stelle der Zahl mit der des Geheimcodes nicht ĂŒbereinstimmt, die Zahl aber an einer anderen Stelle vorhanden ist, so wird dies mit ’WEISSEN’ KĂ€stchen angezeigt. Wenn Sie Ihren Code eingegeben haben, fragt das Programm, ob Sie diesen Code nehmen wollen. Sollten Sie diese Frage mit N bzw. n beantworten, dann bleibt zwar der ’alte’ Code auf dem Bildschirm stehen, doch sie können bzw. mĂŒssen nun erneut einen Code eintippen. FĂŒr das Erraten des Geheimcodes haben Sie zehn Versuche zur VerfĂŒgung, wenn Sie den Code bis dahin erraten haben, bekommen Sie dafĂŒr einen Tusch gespielt. Sollten Sie den Code mit dem zehnten Versuch nicht erraten haben hört das Programm auf und gibt einen Text und den Code aus. Außerdem können Sie die Runde jederzeit abbrechen wenn Sie keine Lust mehr haben. DrĂŒcken Sie dafĂŒr einfach die Taste ’E’. Die Anzahl der Versuche mag zwar gering erscheinen, doch bei genauer Analyse der ’Schwarzen’ und der ’Weißen’ erhĂ€lt man genug Zusatzinformationen, um den Code schnell zu bestimmen.

Beim Starten des Programms (wobei man immer im ’EDIT’-Modus sein sollte!), wird zuerst nach der Anzahl der Zahlen des Geheimcodes gefragt. Man kann hier bis zu sechs Zahlen wĂ€hlen. Damit lĂ€ĂŸt sich bei einem entsprechenden Zahlenbereich ein hoher Schwierigkeitsbereich erreichen (ĂŒber 300000 Möglichkeiten). Als nĂ€chstes erwartet das Programm die Eingabe des Bereichs, der von 1 bis 9 gewĂ€hlt werden kann. Bei beiden Eingaben kann man durch DrĂŒcken der < Return > -Taste die Standardwerte einstellen. Nachdem die -Anzahl der Möglichkeiten angezeigt wurde, können Sie Ihren Zahlencode eingeben. Die einzelnen Ziffern werden, um sie besser hervorzuheben, als ’Segmentziffern’ ausgegeben, wie sie auch bei Taschenrechnern und Digitaluhren verwendet werden.

Zum Einschalten der verschiedenen, im Normalbasic nicht ansprechbaren Schriftarten, werden die GEM-VDI Routinen aufgerufen. NÀhere ErklÀrungen dazu finden Sie im GEM-Artikel in diesem Heft.

Beim Eintippen des Programms muß auf die Zeilennummern keine RĂŒcksicht genommen werden, da das Programm nur SprĂŒnge zu ’Labels’ enthĂ€lt.

CODES Code
Z() Code (indizierte Variable)
Zl() Code fĂŒr Vergleich
V() Versuch
N Anzahl der Zahlen
Z Bereich der Ziffern
E$ allgemeine Eingabevariable
A,B allgemeine Schleifenvariablen
VN Anzahl der Versuche ,
S Anzahl der ’Schwarzen’
W Anzahl der ’Weißen’-
X,Y Variablen fĂŒr LINE und FILL

HAUPTROUTINEN
150 Zufallsgenerator setzen
160 Dimensionierung der Felder
170 Fenster vorbereiten
180 Große Fettschrift setzen
182- 188 Zeichnen von zwei Köpfen
190 Große, kursive und fette Schrift setzen
194 Kleinschrift setzen
195 Variablen fĂŒr Standardspiel setzen
200- 270 Eingabe und Kontrolle von Anzahl und Bereich
280 Anzahl der Möglichkeiten ausgeben
290- 330 Zufallscode generieren
340 Aufruf der Zeichenroutine
360- 720 Hauptprogramm
370- 380 Anzahl der Versuche erhöhen und kontrollieren
410- 570 Eingabe des Codes und Kontrolle
460 LINE-Befehl fĂŒr Markierung der Eingabe
500 Zahlencodes umwandeln in Code fĂŒr Segmentziffern ,
530— 570 Abfrage ob Eingabe in Ordnung
590- 710 Auswertung des eingegebenen Codes
600 Anzahl der ’Schwarzen’ und ’Weißen’ zurĂŒcksetzen
620 Geheimcode in das Feld Zl() ĂŒbertragen
630 Anzahl der ’Schwarzen’ ĂŒberprĂŒfen
650 ÜberprĂŒfen ob gewonnen
690 Anzahl der ’Weißen’ ĂŒberprĂŒfen
740- 770 Programmteil fĂŒr ’GEWONNEN’
790- 820 Programmteil fĂŒr ’GENUG’
800 Lösungscode ausgeben
840- 870 Programmteil fĂŒr ’AUFGEGEBEN’
880 Programmende
900-1040 Unterprogramm zum Zeichnen der Vierecke
905 Standardschrift setzen
930 y-Koordinate berechnen
950 LĂŒcke zwischen ’Schwarzen’ und ’Weißen’
960 y-Koordinate berechnen
970-1000 LINE-Befehl fĂŒr Viereck
1060-1110 Unterprogramm zum AusfĂŒllen der ’Schwarzen’
1070 — 1080 x- und y-Koordinaten berechnen
1090-1100 Farbe setzen und ausfĂŒllen
1130-1180 Unterprogramm zum AusfĂŒllen der ’Weißen’
1140-1150 x- und y-Koordinaten berechnen
1160-1180 COLOR setzen und ausfĂŒllen
1200-1310 Unterprogramm ’Tusch’ fĂŒr ’Gewonnen’
1210 Ausschalten der drei TonkanÀle
1220-1240 Akkord mit drei TonkanÀlen setzen
1250 TonkanÀle einschalten und Ton halten
1260-1290 Zweiten Akkord setzen und spielen
1400-1500 Unterprogramm zum Setzen von SchriftgrĂ¶ĂŸe und Schriftart
GEM-Routinen 107,106
1510-1630 Unterprogramm zur maßstabsgerechten Textausgabe GEM-Routine 8

Listing Code99.bas