AddexioCE is a C# chess engine using c-chess-cli to join ternaments. The engine and its stragaies is isolated from IO concerns, with UCI as the primary integration surface.
- Run as a UCI-compatible engine against external GUIs
- Provide a stable, reusable core API for UCI front-ends
- Hot-swap decision strategies during runtime without restarting the engine
UCI mode is the primary runtime interface. The engine runs headless and communicates exclusively through the UCI protocol. All user interaction, configuration, and game control are handled by the UCI host (GUI or tournament manager).
A strategy defines how the engine selects moves. Strategies are pluggable components that can be replaced at runtime without restarting the engine. The engine core provides state and legal moves, while strategies decide which move to choose. The UCI layer can expose strategy selection and configuration via standard UCI options.
Examples:
- Random strategy
- Material-based strategy
- Scripted strategy
- Future minimax strategy
- Board representation
- Move application
- Game state tracking
- Find all leagal moves
- Strategy State Machine
- Runtime strategy switching
- Self-play strategy vs strategy
- UCI game loop integration
- Local player vs engine
- Local engine statagy vs engine statagy
- UCI command parsing
- Position setup
- Move output
- Option handling and configuration
- Perft-style validation
- Self-play stress testing
- Logging and diagnostics