RotateBoard

RotateBoard

Repräsentiert das Spielbrett und dessen Zustand. Implementiert das GameState Interface für die KI.

Constructor

new RotateBoard(idOrData)

Description:
  • Erstellt eine neue Board-Instanz.

Source:
Implements:
Parameters:
Name Type Description
idOrData string | null

Die Level-ID ('0'-'3') oder null (für leeres Board/Klonen).

Members

fallOffsets :Object.<number, number>

Description:
  • Speichert visuelle Offsets für fallende Boxen.

Source:

Speichert visuelle Offsets für fallende Boxen.

Type:
  • Object.<number, number>

grid :Array.<Array.<number>>

Description:
  • Das Spielfeld als 2D-Array (WAND, LEER, ZIEL, >=0 BoxID).

Source:

Das Spielfeld als 2D-Array (WAND, LEER, ZIEL, >=0 BoxID).

Type:
  • Array.<Array.<number>>

isFalling :boolean

Description:
  • Flag für laufende Fall-Animationen.

Source:

Flag für laufende Fall-Animationen.

Type:
  • boolean

moves :number

Description:
  • Anzahl der getätigten Züge.

Source:

Anzahl der getätigten Züge.

Type:
  • number

won :boolean

Description:
  • Gibt an, ob das Ziel erreicht wurde.

Source:

Gibt an, ob das Ziel erreicht wurde.

Type:
  • boolean

Methods

canFall(id) → {boolean}

Description:
  • Prüft, ob eine Box physikalisch fallen kann. Die ID der Box.

Source:
Parameters:
Name Type Description
id number

True, wenn der Weg nach unten frei ist.

Returns:
Type
boolean

clone() → {RotateBoard}

Description:
  • Erstellt eine tiefe Kopie des aktuellen Boards. Die Kopie.

Source:
Implements:
Returns:
Type
RotateBoard

getNextStates() → {Array.<{move: string, state: RotateBoard}>}

Description:
  • Liefert alle möglichen Nachfolgezustände.

Source:
Implements:
Returns:
Type
Array.<{move: string, state: RotateBoard}>

getStateKey() → {string}

Description:
  • Generiert einen eindeutigen Schlüssel für den Zustand (für HashMaps). String-Repräsentation des Grids.

Source:
Implements:
Returns:
Type
string

initFromId(id)

Description:
  • Lädt die Leveldaten aus den Strings. WICHTIG: Die Strings enthalten Leerzeichen, die für das Layout essenziell sind.

Source:
Parameters:
Name Type Description
id string

isGoal() → {boolean}

Description:
  • Prüft, ob das Spiel gewonnen ist.

Source:
Implements:
Returns:
Type
boolean

moveDown(id)

Description:
  • Bewegt eine Box logisch um ein Feld nach unten. Die ID der Box.

Source:
Parameters:
Name Type Description
id number

relaxBoardSync()

Description:
  • Lässt alle Boxen fallen, bis sie stabil liegen. Wird synchron ausgeführt (ohne Animation), z.B. für KI-Vorberechnung. Wenn das Spiel bereits gewonnen ist, werden keine Blöcke mehr bewegt.

Source:

rotate(clockwiseopt)

Description:
  • Rotiert das Spielfeld um 90 Grad.

    • True für Rechtsdrehung, False für Links.
Source:
Parameters:
Name Type Attributes Default Description
clockwise boolean <optional>
true