Einrichtung der Python-Umgebung
Damit ihr das Schachprojekt lokal entwickeln und ausführen könnt, müsst ihr eine geeignete Python-Umgebung einrichten. Im Folgenden findet ihr eine Schritt-für-Schritt-Anleitung zur Installation aller benötigten Werkzeuge und Bibliotheken.
Voraussetzungen
Python 3.11 oder höher muss installiert sein.
Ein Terminal / eine Shell (z. B. cmd, PowerShell, Terminal, oder VSCode-Terminal)
Optional, aber empfohlen: Virtuelle Umgebung (pyenv)
Wechselt in das Verzeichnis eures Projekts:
cd pfad/zum/projekt
Installiert die benötigten Pakete:
pip install numpy pygame unittest unittest-prettify
Hinweise zur IDE
Für das Projekt empfehlen wir Visual Studio Code, PyCharm oder Thonny.
Achtet darauf, dass in der IDE auch die richtige Python-Umgebung (virtuell oder systemweit) ausgewählt ist.
Tests und erste Ausführung
Nach der Installation könnt ihr prüfen, ob das Projekt lauffähig ist:
Startet Python:
python
Importiert eine Beispielklasse:
from board import Board b = Board() print(b)
Beendet Python mit exit() oder Strg + D.
Fehlerbehandlung
Falls ModuleNotFoundError auftaucht, überprüft: - Ist die virtuelle Umgebung aktiviert? - Wurde das Paket korrekt installiert?
Bei Problemen mit numpy: Aktualisiert pip:
python -m pip install --upgrade pip
Ausführen der automatischen Tests
Um eure Implementierungen systematisch zu überprüfen, steht eine Testsuite zur Verfügung, die alle zentralen Methoden mit automatisierten Unit-Tests abdeckt.
Diese Tests prüfen, ob ihr die TODO-Methoden korrekt umgesetzt habt – einschließlich Funktionalität, Rückgabewerte, und in vielen Fällen auch Randbedingungen. Sie liefern möglichst aussagekräftige Fehlermeldungen, um euch gezielt bei der Fehlersuche zu unterstützen.
Testausführung
Sobald ihr eine oder mehrere Methoden implementiert habt, könnt ihr die Tests jederzeit ausführen:
python main.py --mode test
Dabei wird eine Reihe vordefinierter Tests durchlaufen, die auf allen Ebenen des Projekts ansetzen – von einfachen Gültigkeitsprüfungen (is_valid_cell) bis hin zur korrekten Funktionsweise des Mini-Max-Algorithmus.
Testausgabe interpretieren
Erfolgreicher Test:
Nachdem alle Methoden korrekt implementiert wurden laufen die Tests ohne Fehlermeldung durch:
python main.py --mode test 🧪 Starte Unittests... ................... ---------------------------------------------------------------------- Ran 19 tests in 1.755s OK
Fehlgeschlagener Test:
Ist eure Implementierung fehlerhaft oder unvollständig, erhaltet ihr eine möglichst sprechende Beschreibung des Fehlers.
python main.py --mode test 🧪 Starte Unittests... ............ Testcase name: Queen Movement Rules Movability wrongly implemented. In this configuration 8 . . . . . . . . 7 . . . . . . . . 6 . . . . . . . . 5 . r . Q . . K . 4 . . . . . . . . 3 . . . . . . . . 2 . . q . . . k . 1 . . . . . . . . a b c d e f g h Queen on c2 (red) should be able to move to b2 (green).
In diesem Fall wird euch (wenn sinnvoll) eine Erklärung mitgegeben, warum der Test fehlgeschlagen ist – etwa welche Eingabewerte verwendet wurden und was erwartet wurde.
Testabdeckung
Die Tests decken alle Methoden ab, die ihr gemäß Anleitung selbst implementieren müsst, darunter u. a.:
Manuelles Spiel und Spiel gegen den Computer
Manuelles Spiel (Mensch gegen Mensch)
Bevor der Mini-Max Algorithmus implementiert ist kann man bereits manuell spielen. Dazu müssen jedoch die wichtigsten Methoden der Board und Pieces-Klassen korrekt implementiert sein. Um das Spiel im manuellen Modus zu starten gib folgenden Befehl auf der Konsole aus:
python main.py --mode manual
Spiel gegen den Computer (Mensch gegen KI)
Um gegen den Computer zu spielen, starte das Spiel wie folgt
python main.py --mode ai