I ran 32 basic xiangqi endgame verdicts against Pikafish at depth 26 and against chessdb.cn, which is a lookup rather than a search and covered 27 of them exactly. Final sweep is 31 of 32 agreeing, one leaning.
Two things in here that don't have chess analogues and that I'd expect to matter for anyone writing a xiangqi engine.
Perpetual check is a loss, not a draw. The side giving check has to vary or forfeit. So the standard chess resource for saving a lost position inverts, and a defence built on repeated checks hands over the point.
The natural limit (自然限着) draws the game after 60 moves by each side with no capture, whatever the evaluation says. A book win needing 70 moves of technique is not a win you can play. I let Pikafish play the one unresolved row out against itself and it broke through on move 34, with 26 to spare, which is the only reason that verdict stands.
Both are easy to read past in an English summary and expensive to read past at the board. Positions and the checker are in the repo, on my own site.
https://brianhliou.com/posts/xiangqi-basic-endgames/
Xiangqi endgame verdicts vs Pikafish: where an engine and a rules corpus disagree
Moderator: Ras
-
brianhliou
- Posts: 1
- Joined: Thu Aug 27, 2026 1:09 am
- Full name: Brian Liou