Universität Ulm - Abteilung Angewandte Informationsverarbeitung

 


5. Übungsblatt zur Vorlesung Allgemeine Informatik III


Abgabetermin: Dienstag, 25.11.2003


Mastermind    (10 Punkte)

Sicher kennt jeder von Ihnen das erfolgreiche Spiel Mastermind. Ein Spieler setzt 4 verschiedenfarbige Kegel (unsichtbar für den Gegner) auf ein Spielbrett (Geheimcode). Nun bleiben für den Gegenspieler maximal 10 Rateschritte, um diesen Geheimcode zu knacken. Dabei zeigen pro Rateschritt schwarze Stöpsel an, bei wievielen Kegeln die Position und die Farbe mit dem Geheimcode übereinstimmen. Weiße Stöpsel zeigen an, daß nur die Farbe aber nicht die Position mit dem Geheimcode übereinstimmt.


Beispiel:

Geheimcode sei 4 2 1 4
1. Tipp:       2 4 3 3   (2 weisse Stöpsel)
2. Tipp:       2 3 1 7   (1 weisser, 1 schwarzer Stöpsel)
3. Tipp:       2 4 4 3   (3 weisse Stöpsel)
4. Tipp:       4 2 1 4   (4 schwarze Stöpsel)

Achtung: Die Anzahl der schwarzen und weissen Stöpsel darf nie größer sein als die Anzahl der Kegel einer Farbe. Sei der Geheimcode z.B. 4242 und der Tip des Spielers 4444, so werden nur 2 schwarze Stöpsel, aber kein weißer gesetzt.


Implementieren Sie eine Mastermindversion, die den obigen Spielregeln entspricht. Das heißt der Computer erzeugt mit Hilfe des Zufallsgenerators den Geheimcode, wobei Farben - wie im obigen Beispiel - auch doppelt vorkommen dürfen. Anschliessend gibt der Spieler solange einen Tipp ab, bis er den Geheimcode erraten hat. Maximal koennen aber nur 10 Tipps abgegeben werden, wobei diese Zahl als Konstante im Programm definiert werden soll. Danach gibt der Computer die Anzahl der schwarzen und weißen Stöpsel aus. Definieren Sie im Programm als weitere Konstante die maximale Anzahl der Farben ($n \le 9$).



Viel Erfolg!



Hans Braxmeier