xqbase/eleeye
ElephantEye - a XiangQi (Chinese Chess) Engine for XQWizard with Strong AI
What it solves
ElephantEye is a free, open-source game engine designed to play XiangQi (Chinese Chess) at a high level. It provides the computational logic needed to analyze board positions, determine the best moves, and compete against human players or other engines.
How it works
ElephantEye uses a "brute-force" approach combined with rigorous game-theory algorithms. Key technical components include:
- Search Algorithms: It employs a recursive Alpha-Beta search with iterative deepening, killer moves, and history heuristics to efficiently explore possible future moves.
- Move Generation: It uses BitRanks and BitFiles (bitboards) to quickly generate moves for sliding pieces (Rooks and Cannons) and to determine piece pins.
- Optimization: The engine implements a two-layer transposition table (depth-first and always-overwrite) to avoid redundant calculations and uses Null Move Pruning (R=2) to speed up the search.
- Evaluation: The search logic is decoupled from the board evaluation function via an API, allowing developers to swap or improve how the engine assesses the strength of a position.
- Protocol Support: It supports the UCCI 3.0 protocol, allowing it to integrate with GUI front-ends like XQWizard.
Who it’s for
- XiangQi Enthusiasts: Players looking for a strong AI opponent or a tool to analyze their games.
- Game AI Developers: Programmers interested in traditional game-tree search algorithms and board game AI architecture.
Highlights
- UCCI 3.0 Compatible: Works seamlessly with standard Chinese Chess engine interfaces.
- Extensive Opening Book: Includes a library of 10,000 symmetric moves derived from top-tier professional matches.
- Modular Design: Separates the search engine from the evaluation function, making it easier for others to build upon or modify.
- Comprehensive Toolset: Comes with utilities for creating opening books, analyzing search trees, and converting game notation formats.
Related
- Project
- Project
- Dispatch
- Project
- Project