1. Projektbeschreibung
2. Formulieren von Teilzielen
3. Aufgetretene Probleme bei der Umsetzung
4. Formulierung des Algorithmus
5. Allgemeine Regeln zum Spiel Mastermind
6. Bedienungsanleitung
7. Highscores und Verschlüsselung
8. Verbesserungsvorschläge
9. Cheatfunktion
10. Erstellung des Credits-Bildschirms
1. Projektbeschreibung
Mit den Projekt "Mastermind gegen den Computer" wollten wir eine möglichst vielseitige
und vollständige Version des bekannten Logikspiels entwerfen. Kern der Projektarbeit war die
Entwicklung eines Algorithmus mit dem der Computer die Kombination erraten soll. Dieser
Algorithmus sollte äußerst effizient sein und Dank der Schnelligkeit eines Computer
einen menschlichen Gegner schlagen können. Um die Umsetzung des Spiel zu vervollständigen
wollten wir ausserdem dem Benutzer die Möglichkeit geben selber eine vom Computer zufallig
gefällte Kombination zu erraten. Weitere zusätzliche Optionen und Verschönerungen sind erst
während der Arbeit am Projekt entstanden.
Im Rückblick auf diese Zielsetzung können wir heute sagen, dass wir diese Gedanken erfolgreich
umgesetzt haben. Der Algorithmus ist so stark, dass es gerade bei größeren Kombinationen ummöglich
wird, als Mensch besser zu sein. Wir denken, dass der Algorithmus nahezu ideal ist und kaum
noch sinnvoll verbessert werden kann.
2. Formulierung von Teilzielen
- grafiklose Version nur zum Testen von Spezialfällen (3 Farben, 3 Stellen) des Algorithmus
- Ausbau auf allgemeine Version mit allen möglichen Fällen
- Einbindung des Möglichkeit, dass der Benutzer rät
- Einbindung von Grafik
- Optimierung des Codes und Vorbeugen gegen Programmfehler (Bugs)
- Einbau zusätzlicher Funktionen
3. Aufgetretene Probleme bei der Umsetzung
Auf Grund der Menge der Informationen in diesen Abschnitt haben wir 3 Links erstellt:
Probleme bei der Umsetzung der Algorithmen
Probleme bei der grafischen Umsetzung
Probleme mit den Pascal-Compiler
4. Formulierung des Algorithmus
siehe Link:
Algorithmusbeschreibung
5. Allgemeine Regeln zum Spiels Mastermind
"Mastermind" ist der englische Name für das Spiel "Superhirn". Es ist ein Knobelspiel, bei dem es gilt, eine Kombination von verschiedenen Farben an Hand von Hinweisen bezüglich der Lage und der Farben zu erraten. So erfährt der ratende Spieler mit einem zuvor vereinbarten Zeichen (in unseren Spiel ein Plus), dass unter seiner geratenen Kombination ein Stein mit einer bestimmten Farbe an der richtigen Stelle liegt. Ein anderes Zeichen (bei uns das Minus) weißt auf eine richtige Farbe hin, während hier der Stein aber jede beliebige Position in der Zahlenkombination einnehmen kann. Ziel des Spieles ist es also, in möglichst wenig Versuchen die Kombination zu erraten.
6. Bedienungsanleitung
Zu Beginn kann man wählen auf welcher Seite man spielen möchte. Dass heißt, ob man lieber selber raten will oder ob der Computer die eigene Kombination erraten soll.
Danach muss festgelegt werden mit wie vielen Stellen und mit wie
vielen verschiedenen Farben gespielt werden soll.
Sie werden dann schnell feststellen wie man eine Kombination auswählen kann.
Mit den Pfeiltasten kann man runterwärts die Farbe auswählen.
Jede gewählte Farbe muss mit Enter bestätigt werden, bevor man die
Farbe an der nächsten Stelle selektieren kann. Das Wählrechteck rutscht dabei in die
nächste Spalte.
Wenn sie selber raten, erhalten sie die Antwort auf ihren Versuch in der
linken Spalte. Ein Plus steht dabei für eine richtige Farbe an der richtigen
Stelle. Ein Minus steht für eine richtige Farbe, die aber an der falschen
Stelle steht.
Wenn der Computer rät, müssen sie zu Beginn ihre Geheimkombination eingeben.
Im Anschluss daran rät der Computer. Ihre Aufgabe dabei ist es, die Versuche
ebenfalls mit Plus und Minus zu bewerten. Wichtig dabei ist es, dass immer
zuerst die Pluszeichen genannt werden. Wenn der Computer alle Stellen richtig erraten hat,
geben sie wieder die richtige Antwort, also nur Pluszeichen, ein. Dann erscheint ein Dialog der zurück ins Menü führt.
7. Highscores und Verschlüsselung
siehe Link: Highscores und Verschlüsselung
8. Verbesserungsvorschläge
a) Geschickte Anwender können sich warscheinlich trotz des Verschlüsselungsverfahrens in die Highscoreliste eintragen, da die Multitasking-Fähigkeiten moderner Betriebssysteme ein Ändern der Highcores außerhalb des Programmes möglich machen.
b) Das Auswahlverfahren der Matrix könnte mit einer Bewegung des Selektors nach links und rechts vereinfacht werden.
c) Ein Abbruch während des Spiels wäre sinnvoll.
d) Viele Nutzer sind den Umgang ohne Maus nicht mehr gewohnt, daher wäre es sinnvoll, das Programm in einer Windows-Umgebung umzusetzen.
e) Ein schnellerer Algorithmus gerade bei vielen Kombinationen wäre besser, insbesondere die enorme Dateigröße der Liste ist störend.
9. Cheatfunktion
Als kleinen Gag haben wir noch ein Cheat (Mogeltrick) eingebaut.
Nach der unsichtbaren Eingabe des Cheatwortes, erscheint rot-blinkend auf den Startbildschirm
die Meldung "Cheats on!". Damit wird eine Funktion freigeschaltet, die bei "Du rätst" es erlaubt
einzelne Farben der Geheimkombination zu verraten. Ausserdem werden die Punkte verzehnfacht.
Wer das Cheatwort finden will, muss im Quelltext danach suchen :-)
10. Erstellung des Credits-Bildschirms
Beim Anblick des Credits-Fensters sieht man viele bunte Sternchen aufblitzten.
Die Prozedur ermittelt zuerst eine zufällige Position:
x:=random(79)+1; {0<x-Koordinate>80}
y:=random(25)+1; {0<y-Koordinate>26}
Die Addition mit 1 verhindert das eine Null entsteht. Als nächstes wird eine Zufallsfarbe ausgewählt:
c:=random(16)+1;
TextColor(c);
Hier verhindert die Addition mit 1 das Schwarz (auf schwarzen Hintergrund nicht sichtbar)
als Farbe gewählt wird.
Nun wird geprüft, ob die Koordinaten ausserhalb des Textfensters liegen. Ist die der
Fall wird mit der gewählten Farbe und mit gotoxy(x,y) zur Stelle gesprungen und das Sternchen geschrieben. Dieser Prozess ist Teil einer Schleife die sich
so lange wiederholt bis eine Taste gedrückt wird. Deshalb sieht man sich ständig veränderte Sternchen.
Startseite