Schach

Schachengine

Schachpartien Verwaltung und -abwicklung
Ein erweiterbares Programm zur Verwaltung und Abwicklung von Schachspielen.

Hauptmerkmale sollen dabei Robustheit, Modularität und Erweiterbarkeit sein. Es soll möglich sein, sowohl gegen einen menschlichen Gegner, als auch gegen einen Computergegner zu spielen. Dabei soll die Intelligenz des Computergegners in einem eigenen Prozess gekapselt sein, der dynamisch vom Verwaltungsprogramm gestartet werden kann. Außerdem sollte die Entwicklung mehrerer Frontends möglich sein.

Funktionalität
  • Verwaltung von Spielinformationen (Spielfeld, Zugreihenfolge, (Kommentare, Statistik))
  • Abwickelung von Spielzügen
  • Regelwerk: Prüfen auf Korrektheit der Züge
  • Sichere Anbindung verschiedener Frontends und Zugberechnungs-Module
  • Anbieten von Spielinformationen für die Backends : Liste zu schlagender Figuren, Liste möglicher Züge, etc.
  • optional: Erzeugung persistenter Spielinformationen, Einlesen der Informationen
  • Historyliste (Undo), Nachrichten (Kommentare zu den Zügen), statistische Auswertung von Spielen
Schnittstellen
  • Anbindung verschiedener Frontends: ASCII, Grafisch, Web
  • Anbindung verschiedener Backends: Zugsuchprogramme, menschliche Zugeingabe
Umgebung
Entwicklung mindestens eines komfortablen Frontends (ASCII oder grafisch) und eines einfachen Schachprogramms zur Demonstration der Schnittstelle
Programmiersprachen und Werkzeuge
Java 1.2 oder neuer
Vorarbeiten
Dieser Themenvorschlag stammt von Matthias Klein. Er hat in seinem Vordiplomsprogramm schon einige Erfahrungen in diesem Themengebiet gesammelt und steht zu weiteren Diskussionen zur Verfügung.
etc.
Eine Aufteilung in mehrere Gruppen ist hier möglich: Schachprogramm (backend) und grafische Frontends können bei sauber definierten Schnittstellen auch unabhängig neben dem Verwaltungsprogramm entwickelt werden.

Hauptnavigation