Mühle ist ein klassisches Brettspiel mit perfekter Information. Das Spielfeld besteht aus drei ineinander verschachtelten Quadraten, deren Seiten durch Linien verbunden sind. Das Ziel des Spieles ist es durch Bilden von sogenannten Mühlen die gegnerischen Steine zu schlagen. Eine Mühle ist hierbei eine Anordnung von drei Steinen in einer Linie. Ein Spieler hat gewonnen, sobald der Gegner nur noch zwei Steine besitzt. Im Rahmen des Programmierprojektes soll eine KI für das Mühlespiel entwickelt werden und dabei Rust erlernt werden.
Rust ist eine relativ neue Programmiersprache, welche sich dadurch auszeichnet, dass viele Fehler im Zusammenhang mit Speicherverwaltung oder Nebenläufigkeit durch entsprechende Überprüfungen zur Compile-Zeit vermieden werden können. Des weiteren zeichnet sich Rust durch eine hohe Effizienz aus und bildet so eine attraktive Alternative zu älteren Programmiersprachen wie C oder C++.
Das Projekt unterteilt sich in folgende Phasen:
- Erlernen der Grundlagen von Rust (Syntax, Ein-/ Ausgaben, Rust-spezifische Konzepte wie Ownership, Borrow-Checker etc.).
- Kennenlernen des Problems und Implementierung eines optimalen Agenten für eine vereinfachte Variante des Mühlespiels durch eine Brute-Force-Suche.
- Implementierung eines Agenten für Varianten des Mühlespiels mit größerem Spielfeld (unter anderem 3D-Mühle).