How are perpetual check and perpetual chase judged?
Every position, move and legality claim on this page is verified programmatically against our open rules engine, which implements the WXF laws for movement, checkmate and both repetition rulings: a side that forces a repetition by perpetual check or perpetual chase loses rather than drawing. The chase half has not been validated against the official casebook.
Direct answer
Repeating a position is not automatically a draw in xiangqi. A player who checks endlessly (长将, perpetual check) loses. A player who endlessly chases a piece that cannot escape (长捉, perpetual chase) also loses. If both sides are equally at fault, the game is drawn. These are the hardest rules in xiangqi, and the ones software most often gets wrong.
Repetition is not a draw
In western chess, threefold repetition is a draw and perpetual check is the classic way to save a lost position. In xiangqi it is the reverse: repetition is adjudicated. The player creating the repetition by an illegal-in-spirit means is penalised, and the penalty is the loss of the game.
The World Xiangqi Federation rules and the Chinese national rules define which repeated actions are prohibited. In simplified form:
| Repeated action | Chinese | Verdict |
|---|---|---|
| Perpetual check | 长将 | The checking side loses |
| Perpetual chase of a piece | 长捉 | The chasing side loses |
| Perpetual threat to mate | 长杀 | Prohibited |
| Both sides perpetually checking | 双方长将 | Draw |
| Repeating with quiet, non-attacking moves | 闲着 | Draw |
What counts as a chase
Perpetual check is easy to recognise. Perpetual chase is where the difficulty lives, and where the exceptions matter. A repeated attack on a piece is a prohibited chase only under conditions — and each of these carves out real exceptions:
- Chasing with the general or a soldier is permitted. These pieces are exempt.
- Chasing a piece that is properly defended is generally not a prohibited chase, since no material is actually being won.
- A chase that also delivers or threatens something else may be judged differently, depending on what the other threat is.
- Whether the chased piece is “rooted” — genuinely protected — is decided position by position, not by a simple count of defenders.
The official casebook resolves these with 110 worked diagrams, because the rule genuinely cannot be stated in one line. This is why almost every xiangqi program either ignores chase adjudication or gets it wrong.
How our engine judges it
Honestly: both are enforced, and one is not validated. Our open rules engine plays the moves, check, checkmate and stalemate to the WXF standard, and in a game against a person a side that forces a repetition by perpetual check or by perpetual chase loses rather than drawing, while a repetition in which both sides check, or neither does, is a draw. The same rulings apply in games against the computer. Chase is tracked by stable piece identity, because a chased piece runs, and it only counts when the piece that just moved renews the threat: discovered chases are deliberately missed, because a false ruling takes a game from someone who should have drawn. The casebook has not been transcribed and nothing is tested against it, so the chase half has not been validated against the official casebook, and we will not claim it is correct or that we match every diagram.
It matters because it is not an exotic corner case. Repetition arises in ordinary games all the time, and a program that calls it a draw is handing one player half a point they did not earn. That is the gap we closed, and it is the reason this page tells you where the remaining gap is, validation, rather than implying there is none. As far as we have been able to establish — and we would genuinely like to be corrected — no other library in the JavaScript, TypeScript, Rust or Python ecosystems adjudicates perpetual chase at all; whether ours does so correctly is what the casebook would tell us.
Common mistakes
Assuming perpetual check saves a lost position
It loses the game outright. The chess habit of forcing a draw by endless checking is the single most expensive misconception a chess player brings to xiangqi.
Assuming any repetition is a draw
Only repetition by quiet moves, or by both sides equally at fault, is a draw. A one-sided perpetual attack is judged against its author.
Treating all chases as prohibited
Chasing with the general or a soldier is allowed, and chasing a properly defended piece usually is too. The exceptions are as important as the rule.
Related questions
Is perpetual check a draw in xiangqi?
No. The player giving perpetual check loses. If both sides are checking perpetually and neither will stop, the game is a draw.
What is perpetual chase (长捉)?
Repeatedly attacking an enemy piece that cannot escape, so that the position repeats. The chasing player loses. Chases by the general or a soldier are exempt, and chasing an adequately defended piece is generally permitted.
How many moves without a capture is a draw?
Under WXF rules, 60 moves — 120 plies — without a capture draws the game. This is the natural-draw rule and is separate from repetition adjudication.
Do online xiangqi sites judge repetition correctly?
Many do not. Correct chase adjudication requires implementing the casebook's exceptions, and most implementations either declare a draw on repetition or handle perpetual check only. Ours enforces both in games between people. What we cannot yet claim is that the chase half is right: it has not been validated against the official casebook, and it deliberately misses discovered chases.