Übungen zur Lehrveranstaltung

"Programmierkurs Java"

WS 199/2000

FB Informatik

D. Boles

 

Übungsblatt 10

Ausgabe: 12.01.2000

Hinweise: Zur Lösung der Aufgaben dürfen nur Konzepte benutzt werden, die in der Vorlesung schon behandelt worden sind.

 

Aufgabe 36 (Objektorientierte Modellierung): 50 Punkte

Schauen Sie sich die in der Vorlesung besprochene Modellierung des TicTacToe-Spiels nochmal gründlich an.

Modellieren und implementieren Sie dann auf eine ähnliche objektorientierte (!) Art und Weise das Metamorphose-Spiel, dessen Regeln auf dem beiliegenden Blatt erläutert werden. Implementieren Sie es so, daß zwei menschliche Spieler gegeneinander spielen können. Das Programm soll Spielzüge einlesen, Spielbretter ausgeben und Spielregeln überprüfen können. Finden und implementieren Sie geeignete Klassen.

Achtung: Diese Modellierung des Metamorphose-Spiels hat im Prinzip noch nichts mit dem Metamorphose-Spieleturnier am Ende des Semesters zu tun. Sie werden zwar Teile des hier entwickelten Programms wiederverwenden können; die Metamorphose-Programme für das Metamorphose-Turnier werden jedoch eine andere Struktur aufweisen. Von daher sollen sich auch die Leute mit dieser Aufgabe auseinandersetzen, die nicht am Metamorphose-Turnier teilnehmen wollen.

 

 

Aufgabe 37 (Programmentwurf): 50 Punkte

Puan-Puan ist ein Spiel, das von zwei Personen auf einem Spielbrett von n mal n Feldern (n = 2, 3, 4, ..., 9) gespielt wird. Als Spielfiguren stehen n mal n gleichfarbige Steine zur Verfügung. Die Spieler ziehen abwechselnd. Bei einem Zug wird entweder ein Stein gesetzt oder ein bereits gesetzter Stein weggenommen.

Wer eine Steinstellung erzeugt, die schon einmal im Verlauf des aktuellen Spiels aufgetreten ist oder die bis auf eine Drehung des gesamten Spielfeldes um 90, 180 oder 270 Grad mit einer bereits aufgetretenen Stellung übereinstimmt, verliert das Spiel. Das Spiel endet, wenn einer der beiden Spieler verliert bzw. nach 100 Zügen. In letzterem Falle endet das Spiel mit einem Unentschieden.

Vier (bis auf Drehung) gleiche Stellungen ("Puan-Gleichheit")

 

Schreiben Sie ein Java-Programm, das zuerst die Größe des Spielbrettes einliest und dann abwechselnd die Spielzüge beider Spieler entgegennimmt und das aktuelle Spielfeld auf den Bildschirm ausgibt, bis das Spiel endet.

Anmerkungen: Beachten und behandeln Sie fehlerhafte Nutzereingaben! Wählen Sie aussagekräftige Bezeichner! Dokumentieren Sie schwer verständliche Stellen.