Research Report on the History of Computer Chinese Chess (Xiangqi) Game-Playing
A structured history of Chinese chess engine development from the 1980s to 2026, covering major engines, protocols, and community tooling. National University Computer Game Championship → Using the UCCI Debugger
National University Computer Game Championship
- Organizer: Computer Professional Teaching Steering Committee of the Ministry of Education
- History: Began in the 2010s
- Frequency: Annually
- Participants: University students nationwide
- Format: Group stage plus elimination
Online Engine Ranking Competitions
In recent years, community-organized online engine ranking competitions have gradually emerged:
- The community runs engine matches on Fishtest or similar platforms
- Rankings and ELO ratings are automatically updated
- Providing public comparative data for engine development
Volume XV: Xiangqi Engine Coding Standards
Source Code Organization
Xiangqi engine source code is typically organized into the following directories:
src/: Source code directory position/: Position representation code movegen/: Move generation code search/: Search algorithm code evaluate/: Evaluation function code ucci/: UCCI protocol code nnue/: NNUE evaluation code (modern engines) benchmark/: Benchmark testing code
Makefile: Build configuration README.md: Project documentation LICENSE: License file tests/: Test code and test data
Coding Conventions
Naming conventions:
- Class names use PascalCase (PositionEvaluation)
- Function names use camelCase (generateMoves)
- Variable names use lowercase with underscores (best_move)
- Constants use ALL_CAPS with underscores (MAX_PLY)
Code formatting:
- Indentation uses 2 spaces or 4 spaces
- Braces on the same line as keywords (K&R style)
- Single-line if statements require braces
Comment conventions:
- Each public function needs a comment explaining its purpose, parameters, and return value
- Complex algorithm implementations need comments explaining their principles
- TODO comments need to note follow-up items
Volume XVI: Xiangqi Engine Debugging Techniques
Using the UCCI Debugger
The UCCI debugger is a basic tool for interacting with and debugging Xiangqi engines:
Main functions:
- Send UCCI commands (ucci, isready, position, go, stop, etc.)
- Display engine responses and search results
- Check correctness of UCCI protocol implementation
- Record engine communication logs
Debugging workflow:
- Start the UCCI debugger
- Send “ucci” command to initialize the engine
- Send “setoption” to configure engine options
- Send “position” to set the board position
- Send “go” to start search
- View the search results returned by the engine (best move, evaluation value, search depth, etc.)