Von Mastermind, also diesem bekannten Kombinationenratespiel, gibt es mittlerweile sehr viele Implementationen im Public Domain-Bereich, auch Online-Versionen wie Secret Code sind mittlerweile auffindbar. Auch der SF2-Teletext des Schweizer Fernsehens bietet davon schon seit längerem eine interaktive Version auf Seite 810 an.
Bei dieser speziellen Version sind die Rollen ganz schlicht und einfach vertauscht! :-) Das heisst, dass Sie sich eine Kombination ausdenken können und Ihr Rechner muss sie herausfinden. Zu Beginn legt man die Dimensionen des Spiels fest:
Ok run Anzahl mögliche Zustände pro Element? 6 Anzahl Elemente? 4 Kann ein Elementzustand mehrfach auftreten? (J/N) J Wird auch die Anzahl der in der Lösung vorkommenden Elemente angegeben? (J/N) J
In der ersten Frage geben Sie ganz einfach die Anzahl vorhandenen Farben an, also 3 bedeutet beispielsweise, dass A, B und C möglich sind. Am besten erstellen Sie für sich persönlich eine kleine Buchstaben-Farben-Zuordnungstabelle, wenn Sie dieses Programm anwenden. Statt Farben können dies auch Zahlen sein oder wie im einstigen Fernsehquiz Persona gar persönliche Charaktermerkmale. Daher sind die Dialogtexte bewusst neutral formuliert. Bei der nächste Frage geben Sie also die Anzahl der Farbstecker pro Kombination an, anschliessend noch, ob Farbwiederholungen möglich sind oder nicht und letztendlich, ob man auch die Anzahl falsch plazierten Stecker mitteilt (beim Original-Mastermind immer der Fall) oder nicht (bei Persona erfuhr man nur die Anzahl der »schwarzen« Stecker).
Daraufhin beginnt Ihr PC mit Raten:
Mein Vorschlag: CBDA Wieviele Buchstaben kommen in der Lösung vor? 2 Wieviele Buchstaben stimmen überein? 1
Bei der ersten Frage geben Sie immer die Summe der »schwarzen« und »weissen« Stecker an, bei der zweiten Frage nur die Zahl der »schwarzen« Stecker alleine.
Mein Vorschlag: CACF Wieviele Buchstaben kommen in der Lösung vor? 1 Wieviele Buchstaben stimmen überein? 0 Mein Vorschlag: FBBD Wieviele Buchstaben kommen in der Lösung vor? 2 Wieviele Buchstaben stimmen überein? 1 Mein Vorschlag: ABAB Wieviele Buchstaben kommen in der Lösung vor? 3 Wieviele Buchstaben stimmen überein? 0 Moment mal, hab gleich die richtige Lösung ... Sie lautet: BEBA Einverstanden? Ok _
Meine Warnung an Sie: Seien Sie vorsichtig mit Betrügereien, denn Ihr PC wird Ihnen bei Schummeleien einmal rasch auf die Schliche kommen... ;-)
Als Grundalgorithmus kommt eine Streichtabelle zum Einsatz, welche zu Beginn einfach alle nur erdenklichen Kombinationen enthält. Bei jedem Rateversuch werden jeweils die nicht mehr in Frage kommenden Möglichkeiten laufend gestrichen. Da diese Liste kleiner wird, wird auch das Programm entsprechend schneller. Gleichzeitig merkt unser intelligenter Roboterspieler dadurch auch Betrügereien, sobald diese Liste keine Elemente hat oder wenn die Lösung eindeutig bestimmt werden kann, weil noch genau ein Eintrag übrig ist.
Die Versionen für BASIC entstanden zuerst. Aufgrund der dortigen Limitationen auf nur vorzeichenbehaftete 16-Bit-Ganzzahlwerte bei Feldvariablen-Indizies ist die Ratekomplexität entsprechend auf 32'767 Einträge limitiert.
Die C++-Version entstand viel später, daher verfügt sie über wesentlich mehr Features; dieses Programm können Sie beispielsweise simultan bei einem Ratespiel verwenden, wo der Moderator spezielle Hilfestellungen bietet wie beispielsweise: »Der zweite Buchstabe lautet C.«. Daher müssen Sie dort auch explizit sagen, dass Ihr PC mit Hilfe des Zufallsgenerators einen Rateversuch von sich aus unternehmen soll, da diese Version eigentlich mehr als Assistent aufgebaut ist.
Ausserdem arbeitet diese Version voll im 32-Bit-Modus sowie mit 32-Bit-Arithmetik, so dass Sie wesentlich komplexere Aufgaben stellen können. Streichtabellen von mehreren Millionen Einträgen stellen also kein Problem dar. Ausserdem wird pro Tabelleneintrag wirklich nur ein einziges Bit Arbeitsspeicher verwendet, so dass für ungefähr eine Million Einträge lediglich 128 KB RAM alloziert werden.
Version für GW-BASIC herunterladen
Umfang: 3,5 KB Bitte dann noch von Hand File und Save anwählen!
Version für AmigaBASIC herunterladen
Umfang: 3,3 KB Bitte dann noch von Hand File und Save anwählen!
Version für DJGPP herunterladen
Umfang: 34 KB + Laufzeitumgebung 59 KB