new GenericTreeAdapter()
- Description:
GenericTreeAdapter - Spielunabhängiger Tree-Adapter für numerische Bäume
Erbt von BaseTreeAdapter und arbeitet ausschließlich mit numerischen Werten. Kein Wissen über TicTacToe, Knights-Tour oder andere Spiele.
Features:
- boardType: 'numeric' für alle Knoten (Kreisdarstellung im Diagramm-Modus)
- Interaktive Klick-Evaluation (handleNodeClick → evaluateNode)
- Minimax-Logik (MAX/MIN-Ebenen, Wert-Propagation, Best-Edge-Highlighting)
- Optional: Alpha-Beta-Pruning (enableAlphaBeta-Flag)
- Statistik-Callbacks (onStatsChanged, onActiveNodeChanged)
Separation of Concerns:
- Adapter orchestriert Baum-Aufbau und Evaluation
- Rendering delegiert an NumericNodeRenderer (via boardType: 'numeric')
- Farben/Status aus zentraler StatusConfig
- Source:
- Version:
- 1.0
- See:
-
- ENGINEERING_CONVENTIONS.md
Extends
Members
_bridge :IframeBridgeHost|null
- Description:
Bridge-Host-Instanz (wenn verfügbar)
- Source:
- Inherited From:
Bridge-Host-Instanz (wenn verfügbar)
Type:
- IframeBridgeHost | null
_bridgeActive :boolean
- Description:
Bridge ist aktiv und hat Handshake abgeschlossen
- Source:
- Inherited From:
Bridge ist aktiv und hat Handshake abgeschlossen
Type:
- boolean
_debugDomain :string
- Description:
Debug-Domain-Key für DebugConfig
- Source:
- Overrides:
Debug-Domain-Key für DebugConfig
Type:
- string
_debugPrefix :string
- Description:
Log-Prefix für diesen Adapter
- Source:
- Overrides:
Log-Prefix für diesen Adapter
Type:
- string
enableAlphaBeta :boolean
- Description:
Steuert ob Alpha-Beta-Pruning aktiv ist
- Source:
Steuert ob Alpha-Beta-Pruning aktiv ist
Type:
- boolean
onActiveNodeChanged :function|null
- Description:
Callback bei aktivem Knoten-Wechsel
- Source:
- Inherited From:
Callback bei aktivem Knoten-Wechsel
Type:
- function | null
onNodeClicked :function|null
- Description:
Callback bei Knoten-Klick aus TreeViz (nodeId, boardData)
- Source:
- Inherited From:
Callback bei Knoten-Klick aus TreeViz (nodeId, boardData)
Type:
- function | null
onNodeFocused :function|null
- Description:
Callback bei Expansion-Klick aus TreeViz (nodeId, boardData)
- Source:
- Inherited From:
Callback bei Expansion-Klick aus TreeViz (nodeId, boardData)
Type:
- function | null
onStatsChanged :function|null
- Description:
Callback bei Statistik-Änderungen
- Source:
- Inherited From:
Callback bei Statistik-Änderungen
Type:
- function | null
stats :Object
- Source:
- Overrides:
Type:
- Object
Methods
(protected) _debugLog(message, payloadopt, levelopt)
- Description:
Einheitlicher Debug-Logger für alle Tree-Adapter. Subklassen setzen this._debugDomain und this._debugPrefix im Konstruktor.
- Source:
- Inherited From:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
message |
string | Log-Nachricht |
||
payload |
Object |
<optional> |
Optionaler Payload |
|
level |
string |
<optional> |
'debug'
|
Log-Level ('debug', 'warn', 'error') |
(protected) _getHighlightEdgeStyle(bestValue) → {Object}
- Description:
Liefert Farbe und Breite für Best-Edge-Highlighting.
- Source:
- Overrides:
Parameters:
| Name | Type | Description |
|---|---|---|
bestValue |
number |
Returns:
- Type
- Object
(protected) _highlightBestEdges(nodeId, bestValue)
- Description:
Markiert die beste(n) Kante(n) eines inneren Knotens. Nutzt _getHighlightEdgeStyle() als Hook für adaptersspezifische Farben/Breiten.
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number | Elternknoten |
bestValue |
number | Bester Wert (MAX oder MIN) |
(protected) _highlightPropagationSubtree(parentId, color, width)
- Description:
Markiert rekursiv alle Kanten eines Teilbaums ab parentId nach unten. Folgt allen offenen (nicht EVALUATED/PRUNED) Nachkommen. Wird für AB-Propagation-Pfeile verwendet.
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
parentId |
number | Startknoten |
color |
string | Kantenfarbe |
width |
number | Kantenbreite |
(protected) _isLeafTerminal(nodeId, data) → {boolean}
- Description:
Prüft ob ein Blattknoten terminal ist. Überschreibbar in Subklassen für spielspezifische Terminal-Erkennung.
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number | Knoten-ID |
data |
Object | treeStructure-Eintrag |
Returns:
- Type
- boolean
(protected) _notifyStatsChanged()
- Description:
Benachrichtigt UI über Statistik-Änderungen.
- Source:
- Inherited From:
addNumericNode(value, parentId, opts) → {number}
- Description:
Erstellt einen numerischen Knoten im Baum.
- Source:
Parameters:
| Name | Type | Description | |||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
value |
number | null | Knotenwert (null für innere Knoten vor Evaluation) |
|||||||||||||||||||||||||||||||||||
parentId |
number | null | Elternknoten-ID (null für Root) |
|||||||||||||||||||||||||||||||||||
opts |
Object | Zusätzliche Optionen Properties
|
Returns:
Neue Knoten-ID
- Type
- number
checkNodeStatus(nodeId)
- Description:
Prüft und aktualisiert den Status eines Knotens.
- Blattknoten (terminal) → READY
- Innerer Knoten (alle Kinder EVALUATED/PRUNED) → READY
- Sonst → WAIT
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number | Zu prüfende Knoten-ID |
createNode(state, parentId, metadata, status, boardTypeopt)
- Description:
Erstellt einen Basis-Knoten und registriert ihn.
Unterstützte boardTypes:
- 'minimax': TicTacToe-Grid Darstellung (default für Rückwärtskompatibilität)
- 'numeric': Kreis mit Zahlenwert (Diagramm-Modus, Lehrbuch-Darstellung)
- undefined: Auto-Detection anhand boardData-Struktur (Knights-Tour, RotateBox)
- Source:
- Inherited From:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
state |
GameState | Object | Spielzustand oder generisches Datenobjekt |
||
parentId |
number | null | |||
metadata |
Object | Metadaten (value, isMaximizing, alpha, beta, etc.) |
||
status |
string |
WAIT
|
||
boardType |
string |
<optional> |
'minimax'
|
Expliziter boardType für Renderer-Routing |
destroy()
- Description:
Entfernt Event-Listener und räumt Ressourcen auf.
- Source:
- Inherited From:
evaluateNode(nodeId)
- Description:
Bewertet einen Knoten (Blatt oder innerer Knoten).
- Blatt: Übernimmt den gespeicherten Wert
- Innerer Knoten: MAX/MIN über evaluierte Kinder
- Bei AB: Prüft Pruning nach Evaluation
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number | Zu bewertende Knoten-ID |
expandNodeChildren(nodeId, state)
- Description:
Nicht verwendet im generischen Modus (Baum wird vollständig aufgebaut).
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number | |
state |
* |
flushCommands()
- Description:
Sendet alle gepufferten Commands als Batch und leert den Puffer.
- Source:
- Inherited From:
getBoardKey(board) → {string}
- Description:
Erzeugt einen eindeutigen Schlüssel für ein Board/State-Objekt.
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
board |
Object | Board- oder State-Objekt |
Returns:
Eindeutiger Schlüssel
- Type
- string
getInitialConfig() → {Object}
- Description:
Liefert initiale Konfiguration für die Tree-Visualisierung.
- Source:
- Overrides:
Returns:
Config-Objekt für TreeEngine
- Type
- Object
handleMessage(data)
- Description:
Verarbeitet eingehende Nachrichten vom Visualizer
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
data |
Object |
handleNodeClick(nodeId)
- Description:
Verarbeitet Klick auf einen Knoten. Nur READY-Knoten können evaluiert werden.
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number | Geklickte Knoten-ID |
(protected) onTreeReady()
- Description:
Wird aufgerufen wenn das IFrame TREE_READY meldet.
- Source:
- Inherited From:
reset()
- Description:
Setzt den Adapter-Zustand zurück und sendet CLEAR an das IFrame.
- Source:
- Inherited From:
sendCommand(command)
- Description:
Sendet einen einzelnen Command an das IFrame. Nutzt IframeBridgeHost wenn verfügbar, sonst Legacy-postMessage.
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
command |
Object | Command-Objekt mit action-Property |
startHandshake()
- Description:
Startet den Handshake mit dem IFrame. Setzt ready-Flag als Fallback nach Timeout.
- Source:
- Inherited From:
visualizeTree(treeDefinition, config) → {Object}
- Description:
Baut einen vordefinierten Baum auf und startet die Visualisierung.
- Source:
Parameters:
| Name | Type | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
treeDefinition |
Object | Baumdefinition aus TreeFactory Properties
|
||||||||||
config |
Object | Konfiguration Properties
|
Returns:
Ergebnis mit Statistiken
- Type
- Object