The records

Every class below is the attacker against 士象全: a general with both advisors and both elephants, which is the standard full defence. Mate counts are moves, not plies, and both sides play perfectly: the winner mates as fast as the position allows, the loser holds out as long as it can.

AttackerLongest winEnds in
Horse and soldier (马兵)mate in 65困毙
Two cannons (双炮)mate in 52困毙
Chariot with its own full guard, against the same (车仕相全)mate in 43checkmate
Cannon and horse (炮马)mate in 36困毙
Chariot alone (单车)mate in 32checkmate
Two horses (双马)mate in 31困毙
Two soldiers (双兵)mate in 22困毙

A lone horse, a lone cannon and a lone soldier cannot win against the full defence at all. That is old knowledge, and the tables have it as a flat draw.

Each line is a chapter in a study. The chapters have no sidelines and nothing is missing: every other move by the loser reaches a position closer to mate, and every other move by the winner either throws the win away or takes longer. That is what makes the line the longest one.

The longest of the seven, step by step. The other six are the next chapters of the same study.

Five of the seven end without a check

In chess, a stalemated king is a draw, so every longest-mate line ends in checkmate. Xiangqi scores it the other way: a side with no legal move loses. The position is called 困毙, and the loser is usually not in check at all when it happens. By the end of these lines the defence has lost its advisors and elephants, and the general stands alone in the palace with nothing it can legally play.

That is the shape of five of these seven records, including the two longest. Here is the second longest, two cannons against the full guard, from five moves before the end: 52 moves of manoeuvring, and the last one is a quiet move that leaves the general no square to go to.

Five moves from the end. The cannon on e1 takes the last elephant on e8, the other cannon swings from f2 round to b9, and the e8 cannon steps up to e9 under the general, which runs to d10. Then the quiet e9-c9: the b9 cannon now fires over it into d9, and the open e-file means e10 would face the red general. Black is not in check and has no legal move.

The rules the table does not know

A tablebase knows legal positions and moves and nothing else. It has never heard of the repetition law or 自然限着, the rule that draws a game after 60 moves with no capture, so a table's headline number can be a line that could never be played out. That is what happened to chess's famous one: the 549-move mate in the 7-piece tables is drawn by the 50-move rule long before it lands.

These seven are not. We replayed each line against both rules: no position repeats in any of them, and the longest capture-free stretch is 27 moves, in 双炮 and in 车仕相全, well inside the 60-move limit.

Checking against the published table

象棋云库's table gives the deepest position in each class with Red to move; ours takes the deepest whoever is to move. Where those are the same question the two agree exactly: two soldiers 43 plies, cannon and soldier 131, horse and soldier 129, cannon and horse 71.

A maximum is not automatically a record, though. Cannon and soldier's 131 plies is the deepest number in the whole 士象全 group, but 象棋云库's own API, asked about that position, returns exactly one winning move, a cannon capture of an elephant, with every other move drawn and the position after it scoring 130. It is a capture followed by a 130-ply mate against a defence missing an elephant, which is why cannon and soldier is not in the table above.

What is missing

Every class here has one side with nothing but a general and its guard. The interesting case is two attackers against a defence that also keeps material, 车马 against 车士象全 and its neighbours, where neither side is obliged to capture anything. That is where the 60-move rule would actually bite, and where a record might turn out to be unplayable in the way chess's is. It is also about 9 billion indices, which wants a machine with considerably more memory than a laptop.

Play through all sevenThe basic endgames