TTTHeuristic

TTTHeuristic

Heuristik-Implementierung für alle Tic-Tac-Toe-Varianten.

Mathematische Intuition der evaluate()-Methode

Die Bewertungsfunktion berechnet einen Gesamtscore S für einen Spielzustand:

S = S_terminal + S_lines + S_position + S_pressure

S_terminal: Sofort-Bewertung bei Spielende → ±win/loss/draw.

S_lines: Für jede Gewinnlinie L:

  • Eigene 2-in-Reihe (+ 1 leer) → +twoInLine
  • Gegner 2-in-Reihe (+ 1 leer) → −twoInLine
  • Eigene 1-in-Reihe (+ 2 leer) → +oneInLine
  • Gegner 1-in-Reihe (+ 2 leer) → −oneInLine

S_position (v2/v3): Summe über alle besetzten Felder:

  • Zentrum(4) → ±centerBonus
  • Ecken(0,2,6,8) → ±cornerBonus
  • Kanten(1,3,5,7) → ±edgeBonus

S_pressure (v3): Zusätzlich:

  • Fork-Erkennung (≥2 Drohungen nach Zug) → ±forkBonus
  • Gegner-Drohungen zählen → −pressureWeight × Anzahl

Constructor

new TTTHeuristic(config)

Source:
Parameters:
Name Type Description
config Object

Konfiguration inkl. variant und optionalem profile.

Members

profile :string

Description:
  • Profilname (v1_baseline, v2_positional, v3_aggressive)

Source:

Profilname (v1_baseline, v2_positional, v3_aggressive)

Type:
  • string

Methods

evaluate(gameState, player) → {number}

Description:
  • Hauptbewertung — delegiert an varianten-spezifische Methode.

Source:
Parameters:
Name Type Description
gameState GameState

Aktueller Spielzustand.

player number

Perspektive (PLAYER1 oder PLAYER2).

Returns:

Numerischer Score. Positiv = gut für player.

Type
number

getDefaultWeights() → {Object}

Source:
Returns:

Default-Gewichte (Baseline-Profil)

Type
Object