app/engine_interface.h¶
frontend-agnostic chess-engine abstraction.
GameSession drives the engine through IEngine so the orchestration loop does not care whether moves come from the in-process engine (LinkedEngine) or, in the future, a pinned UCI subprocess (a personality that wants a specific historical engine build). See docs/gui-docs/PLAN.md §3.2.
-
namespace kirin
Typedefs
-
using ThinkingCallback = std::function<void(const ThinkingInfo&)>¶
Enums
-
struct AnalysisLine¶
- #include <engine_interface.h>
-
struct EngineOptions¶
- #include <engine_interface.h>
Public Members
-
int skillLevel = 2¶
-
int hashMb = -1¶
-
std::optional<bool> usePVS¶
-
std::optional<bool> useNullMove¶
-
std::optional<bool> useLMR¶
-
std::optional<bool> useFutility¶
-
std::optional<bool> useSingular¶
-
std::optional<bool> useProbCut¶
-
std::optional<bool> useIID¶
-
std::optional<bool> useAspiration¶
-
std::optional<bool> useHistory¶
-
std::optional<bool> useSEE¶
-
std::optional<bool> useSEEOrdering¶
-
std::optional<bool> useSEEPruning¶
-
std::optional<bool> useNNUE¶
-
std::string evalFile¶
-
int skillLevel = 2¶
-
class IEngine¶
- #include <engine_interface.h>
Subclassed by kirin::LinkedEngine, kirin::NetworkOpponent
Public Functions
-
virtual ~IEngine() = default¶
-
virtual void applyOptions(const EngineOptions &opts) = 0¶
-
virtual void newGame(const std::string &fen = "") = 0¶
-
virtual bool playMove(const std::string &uci) = 0¶
-
virtual bool playMove(int encodedMove) = 0¶
-
virtual int parseMove(const std::string &uci) = 0¶
-
virtual std::string go(const SearchLimits &limits, const ThinkingCallback &onInfo = nullptr) = 0¶
-
virtual AnalysisLine analyze(const SearchLimits &limits) = 0¶
-
virtual void stop() = 0¶
-
virtual std::string fen() const = 0¶
-
virtual char sideToMove() const = 0¶
-
virtual GameResult result() const = 0¶
-
virtual bool isGameOver() const = 0¶
-
virtual std::string resultReason() const = 0¶
-
virtual ~IEngine() = default¶
-
struct ThinkingInfo¶
- #include <engine_interface.h>
-
using ThinkingCallback = std::function<void(const ThinkingInfo&)>¶