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