Spielregeln
Das reale Spielbrett steht aufrecht und besteht aus sieben Schächten, die
jeweils sechs Steine aufnehmen können. Wird ein Stein eingeworfen, fällt
er bis auf die tiefste noch freie Position. Ziel des Spiels 4-Gewinnt
ist es, als erster von zwei Spielern vier Steine in einer Reihe, einer
Spalte oder in einer Diagonalen zu bekommen. Dazu werfen die Spieler jeweils
abwechselnd einen Stein ihrer Farbe in einen der sieben Schächte. Der gewählte
Schacht darf natürlich noch nicht voll sein. Ist kein Schacht mehr frei und
hat kein Spieler einen Vierer gebaut, geht das Spiel unentschieden aus.
Teilaufgabe a) (10 Punkte)
Schreiben Sie für 4-Gewinnt ein objektorientiertes Programm
und implementieren Sie hierzu eine geeignete grafische Oberfläche.
Das Spielfeld soll dabei aus einzelnen Zellen bestehen, wobei alle
übereinanderliegenden Zellen zu einer Spalte gehören. Erstellen Sie
eine Klasse für die Zellen und für das Spielfeld. In der Klasse
Spielfeld sollen fehlerhafte Spielzüge (z.B. Spalte ist bereits
voll) abgefangen werden und es soll überprüft werden, ob ein Spieler
bereits gewonnen hat. Eine weitere Klasse soll die Spiellogik (welcher
Spieler ist am Zug) implementieren, d.h. die Kontrolle über den Spielfluß
übernehmen. Es genügt wenn beide Spieler abwechselnd Steine setzen
können bzw. ein Computergegner aus den noch freien Spalten zufällig
eine auswählt und ein Steinchen setzt, ohne auf die Konsequenzen zu
achten. Verwenden Sie für die Implementierung der grafischen Oberfläche
das Swing-Interface.
Teilaufgabe b) (5 Zusatzpunkte)
Erweitern Sie Ihr Programm so, daß Sie gegen einen intelligenten
Computerspieler spielen können, der seine Züge anhand eines
Spielbaums auswählt.
Hierbei soll bei jedem Spielzug des Computers ein Spielbaum der Zugmöglichkeiten bis zu einer Tiefe k aufgebaut werden, wobei k die Schwierigkeitsstufe darstellt. In den Blättern wird die jeweilige Spielsituation mittels einer Bewertungsfunktion analysiert. Der Wert, den diese Funktion ermittelt gibt an, wie gut oder schlecht die Lage für den Computer ist. Durch Minima- und Maximaberechnungen kann anschließend entschieden werden, welcher Zug für den Computer am Besten ist. Testen Sie Ihre Strategie, indem Sie ihre Programme gegeneinander antreten lassen.
Viel Erfolg!