Authors: Daniel Tan, Xiaofan Sun
This Xiangqi Chinese Chess Engine is named after the famous ancient Chinese manual "Secret of the Orange". This project has both a Xiangqi Graphical User Interface and a UCCI (Universal Chinese Chess Interface) protocol complaint Xiangqi Engine. This project supports Windows, Mac, and Linux.
- Drag and Drop to move pieces
- Click to move pieces
- Psuedo Legal Move Generation
- Implements UCI (Universal Chess Interface) Protocol as well as UCCI (Universal Chinese Chess Interface)
- Can do human vs computer, computer vs computer
- Parse and load FEN strings
- Multi engine support
- UCI/UCCI Engine Options
- Windows, Mac, and Linux support
- Chess Clock with Increment
- Blindfold Mode
- Drawing Arrows with Right Click
- Display Engine Lines
- English/Chinese Language Options
- Approximately 2560+ rating
- UCCI Protocol
- 90 square board
- Piece Lists
- Magic Sliding Bit Rows and Columns
- Pseudo Legal Move Generation
- Staged Move Generation
- Supports up to 256 Threads
- Lazy Shared Memory Processing Parallel Search
- Negamax Search with Alpha Beta Pruning
- Principle Variation Search
- Iterative Deepening
- Aspiration Window Search
- Reverse Futility Pruning
- Null Move Pruning w/ Endgame Verification
- Delta Pruning
- Razoring
- Mate Distance Pruning
- Singular Search Extensions
- Check Extensions
- 16-byte transposition table hash entries
- Zobrist Hashing with Incremental Update
- Prefetch Transposition Table Entries
- Depth Preferred + Random Replacement Scheme
- Principle Variation Move Ordering
- MVV-LVA (Most Valuable Victim, Least Valuable Attacker)
- Killer Move Ordering
- Countermove Move Ordering
- History Move Ordering
- Countermove History Move Ordering
- Efficiently Updatable Neural Networks with Incremental Update
- 2 Layer Neural Network (2 x (1620 x 128) -> 1)
- Supports AVX2, SSE, and CPU without SIMD
- Trained on 40000 Grandmaster Games + 20000 Synthetic Games. 90 Million Positions
- 100% World Xiangqi Federation Repetition Rules Coverage
- Full Chasing Rule Coverage
- Understands Perpetual Check, Kill, Chase, Exhange, Block, Offer, Idle, etc.