Dr. Johannes Mayer Abteilung Angewandte Informationsverarbeitung 4. Mai 2005
Hans Braxmeier Blatt 3
Ralph Guderlei


\includegraphics[scale=0.4]{UULogo.eps}



Design und Architektur von Softwaresystemen (SS 2005)


Abgabetermin: 13. Mai 2005

1 Vier gewinnt (10 Punkte + 5 Zusatzpunkte)



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.

\includegraphics[scale=0.3]{4Gewinnt.ps}


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!



Hans Braxmeier 2005-05-30