ChessBot
Ich habe ein Schach und einen Schachbot programmiert
Themenbereich
Softwareentwicklung
Lernende/r
Janis Huber
Lehrbetrieb
CSS Versicherung
Betreuer
Martina Ellenberger & Urs Nussbaumer
Projekt-Website
https://github.com/JanisHuber/oopChessBot
Aufgabenstellung
Das Ziel war es ein Schachspiel zu programmieren, welches gegen einen Bot gespielt werden kann. Der Bot sollte in der Lage sein, die besten Züge zu berechnen und zu spielen.
Ergebnisse

Erreicht wurde ein Schach das einwandfrei gespielt werden kann. Die Funktion "Castling" und "En passant" wurden nicht implementiert. Der Bot spielt im aktuellen Zustand noch nicht optimal und ist noch nicht korrekt implementiert.
Lösungskonzept
Ich habe mit JavaFX ein GUI entwickelt, welches das Schachbrett und die Figuren darstellt. Beim klicken auf eine Figur werden die möglichen Züge berechnet und fälschliche Züge werden aussortiert. Das Schach behandelt Schach und Schachmatt korrekt und mit berechnnungen werden nur Lösungen angezeigt.
Aufgetretene Probleme
Die Überprüfung der Züge war sehr aufwendig und hat viel Zeit in Anspruch genommen. Daher war wenig Zeit vorhanden den Bot zu implementieren. Beim Bot war ausserdem das Problem das ich alle möglichen Zugzweige berechnen musste auf einem seperaten Schachbrett, da das Klonen von Schachbrettern mit Java nicht korrekt funktionierte, musste ich eigenständig eine Funktion schreiben die das Schachbrett kopiert, ohne das Referenzen auf das originale Schachbrett zeigen.
Ausblick
Das Bot muss noch optimiert werden und es muss eine effektive Lösung für das Bewerten der Züge gefunden werden. Da das pruning momentan falsche Zweige aussortiert. (pruning steht für das Abschneiden von unrelevanten Zweigen, es hilft die effizienz des Programms zu erhöhen, da es im Schach mit Tiefe 5, 35⁵ = 52'000'000 Züge durschnittlich gibt.)