Aufgabe 1: Mini-Schach

 

Ansprechpartner: Dr. Klaus Ahrens

 

Aufgabe

Implementieren Sie ein Java-Programm (vermutlich bestehend aus mehreren Klassen:-) welches ein vereinfachtes Schachspiel realisiert. Das Programm soll mit einer graphischen Oberfläche ausgestattet sein, die den Verlauf des Spiels darstellt.

Mehrere Spielmodi sollen (im Idealfall) unterstützt werden:

Die Regeln sind gegenüber dem echten Schach etwas vereinfacht:

 

 

6x6 Spielfeld - - ohne Läufer

 

Turnier

Wenn sich alle Gruppen, die diese Aufgabe lösen, vorab über eine einheitliche Schnittstelle des Austauschs von Spielzügen verständigen, könnten die Gruppen sogar gegeneinander in einem Turnier antreten. Die Besten im Turnier könnten dadurch "unermesslichen Ruhm" erlangen. Im Turnier wird ggf. die Zeit für ein Spiel limitiert, wobei bei Ablauf der Zeit das Spiel Remis endet (1/2 Punkt für jeden). Spieler, die durch 'auffällig' lange Bedenkzeiten auf dieses Remis hinarbeiten, werden disqualifiziert.

 

Hinweise

Vermutlich ist es sinnvoll, eine (abstrakte) Basisklasse aller Spielfiguren zu entwerfen, die alle gemeinsamen Operationen bündelt, die in den konkreten Ableitungen dann unterschiedlich ausfällt: z.B. die Erzeugung von Listen möglicher Züge oder von Listen verteidigter oder angegriffener Positionen. Letztere werden sicher bei der Strategie eine Rolle spielen. Darüber hinaus sollten in der Strategie natürlich auch die Stärken der einzelnen Figuren bewertet werden, ggf. die Zentralität von Zügen (Aktionen in der Mitte bzw. Richtung gegnerischer König sind wohl wichtig) und evtl. auch der Freiheitgrad (Anzahl der Felder, die eigene Figuren erreichen können).

Im Notfall kann Ihre Strategie auch darin bestehen, unter den zulässigen Zügen immer nur einen zufälligen Zug auszuwählen, womit sich aber sicher kein Turnier gewinnen lassen wird.

 

Abgabe

Geben Sie ein .tgz-Archiv ab, welches alle Quelltexte Ihres Schachprogramms enthält. Darüber hinaus muss eine Datei README im Archiv enthalten sein, die beschreibt, welche Ausbaustufe sie implementiert haben (s.o. Spielmodi) und wie das Programm zu starten ist (Name der main-Klasse, Parameter etc.)

 

Viel Spaß :-)