//
// Created by sebastian on 02.08.26.
//

#ifndef COLORRACE_LUDOAICONTROLLER_H
#define COLORRACE_LUDOAICONTROLLER_H
#include <memory>

#include "LudoGameMode.h"


namespace ludo {
    class LudoAiController {
    public:
        LudoAiController(std::shared_ptr<LudoGameMode> gameMode, engine::PlayerID player);
        void update(float deltaTime);
    private:
        static constexpr float kThinkDelay = 0.8f;

        [[nodiscard]] std::optional<int> chooseMove() const;
        std::shared_ptr<LudoGameMode> m_gameMode;
        engine::PlayerID m_player;
        float m_thinkTimer = 0.0f;
    };

}

#endif //COLORRACE_LUDOAICONTROLLER_H
