NIMGameLogic

NIMGameLogic

new NIMGameLogic(pilesopt)

Description:
  • Initialisiert ein neues NIM-Spiel.

Source:
Parameters:
Name Type Attributes Description
piles Array.<number> <optional>

Optional: Startkonfiguration

Methods

_checkGameEnd()

Description:
  • Hilfsfunktion: Prüft auf Spielende

    Spielende ist erreicht, wenn keine Streichhölzer mehr vorhanden sind. Der aktuelle Spieler (der gerade gezogen hat) gewinnt.

Source:

clone() → {NIMGameLogic}

Description:
  • ✅ ERFORDERLICH: clone()

    Erstellt eine exakte Kopie für KI-Simulationen.

Source:
Returns:
Type
NIMGameLogic

getAllValidMoves() → {Array.<Object>}

Description:
  • ✅ ERFORDERLICH: getAllValidMoves()

    Im NIM gibt es gültige Züge, wenn noch Streichhölzer vorhanden sind. Ein Zug: {pile: 0-2, count: 1-n} wobei n die Größe des Haufens

Source:
Returns:

Array von {pile, count} Objekten

Type
Array.<Object>

getStateKey() → {string}

Description:
  • ✅ ERFORDERLICH: getStateKey()

    Zwei Zustände sind gleich, wenn:

    • Die Haufen identisch sind
    • Der aktuelle Spieler gleich ist
Source:
Returns:
Type
string

makeMove(move) → {boolean}

Description:
  • ✅ ERFORDERLICH: makeMove(move)

    Führt einen NIM-Zug aus:

    1. Validierung
    2. Piles aktualisieren
    3. Spielende prüfen
    4. Spieler wechseln
Source:
Parameters:
Name Type Description
move Object

{pile: number, count: number}

Returns:
Type
boolean

toString() → {string}

Description:
  • OPTIONAL: Gibt einen lesbar formatierten String des Zustands zurück. Nützlich zum Debuggen.

Source:
Returns:
Type
string