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)

  1. Wechselt in das Verzeichnis eures Projekts:

    cd pfad/zum/projekt
    
  2. 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:

  1. Startet Python:

    python
    
  2. Importiert eine Beispielklasse:

    from board import Board
    b = Board()
    print(b)
    
  3. 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