ai/agents/random-agent.js

/**
 * @fileoverview
 * Agent für zufällige Zugwahl (Random Agent).
 * Wählt aus allen gültigen Zügen einen zufällig aus.
 */

/**
 * Ein Agent, der zufällige gültige Züge macht.
 * Dient oft als Baseline für Vergleiche.
 * @class RandomAgent
 * @extends Agent
 */
class RandomAgent extends Agent {
    constructor() {
        super("Zufall");
    }

    /**
     * Wählt zufällig einen der gültigen Züge.
     * @param {GameState} gameState 
     * @returns {Object|null}
     */
    getAction(gameState) {
        const moves = gameState.getAllValidMoves();
        if (!moves || moves.length === 0) return null;

        const randomIndex = Math.floor(Math.random() * moves.length);
        return {
            move: moves[randomIndex],
            reason: "Zufallswahl"
        };
    }
}