Dieses Subsystem beinhaltet die Ermittlung eines nächsten Zuges ausgehend von einer Spielsituation. Diese Situation wird von außen vorgegeben. Die Engine ist zustandsbehaftet und spielt stets eine Partie zur gleichen Zeit. Die Default-Implementierung benötigt zum Arbeiten eine Implementierung der Spielregeln, die Eröffnungsbibliothek hingegen ist optional.
Das Subsystem stellt seine Funktionalität über das Java-Interface de.dokchess.engine.Engine bereit. Default-Implementierung ist die Klasse de.dokchess.engine.DefaultEngine.
Bild: Schnittstelle Engine, Implementierung
Methode | Kurzbeschreibung |
---|---|
figurenAufbauen | Setzt den Zustand der Engine auf die angegebene Stellung. Falls aktuell eine Zugermittlung läuft, wird diese abgebrochen. |
ermittleDeinenZug | Startet die Ermittlung eines Zuges für die aktuelle Spielsituation. Liefert Zugkandidaten asynchron über ein Observable zurück (→ Laufzeitsicht 6.1). Die Engine führt die Züge nicht aus. |
ziehen | Führt den angegebenen Zug aus, d.h. ändert den Zustand der Engine. Falls aktuell eine Zugermittlung läuft, wird diese abgebrochen. |
schliessen | Schließt die Engine. Die Methode erlaubt es Ressourcen frei zu geben. Im Anschluss sind keine Zugermittlungen mehr zulässig. |
Tabelle: Methoden der Schnittstelle Engine |
Methode | Kurzbeschreibung |
---|---|
setSpielregeln | Setzt eine Implementierung der Spielregeln, → 5.3 Spielregeln (Blackbox) |
setEroeffnungsbibliothek | Setzt eine (optionale) Eröffnungsbibliothek, deren Züge gegenüber eigenen Überlegungen präferiert werden. → 5.5 Eröffnung (Blackbox) |
Tabelle: Methoden der Klasse DefaultEngine (zusätzlich zu Engine) |
Konzept 8.2 („Schach-Domänenmodell“) beschreibt die in der Schnittstelle verwendeten Aufruf- und Rückgabeparameter (Zug, Stellung). Details zum Engine-Subsystem finden Sie in der Whitebox-Sicht in Abschnitt 5.6.
Die Implementierung sowie Unit-Tests liegen unterhalb der Pakete de.dokchess.engine…