Why does the checking player have to vary?

These answers restate the rules implemented by our open-source engine, which follows the WXF laws and is regression-tested against the official 110-diagram repetition casebook. Where an answer refers to a specific position, that position lives on the linked reference page, where the build verifies it against the engine before publishing.

Direct answer

Because the rules put responsibility on the player who has a choice. A player answering check has no options — they must respond. The player giving check chooses to repeat, so if the game is going nowhere, they are the one required to change it, and they lose if they refuse.

The logic extends to chasing

Same reasoning. A player whose piece is being chased must keep moving it; the chaser is choosing to repeat. So the chaser must vary. Where both sides are forcing, neither is solely responsible and the result is generally a draw.

It is a design choice, not an accident

Chess resolves the same situation by drawing, which rewards the side that is worse. Xiangqi resolves it by assigning fault, which rewards the side that is better. Both are coherent; they simply produce very different games, and it is why a chess player's instinct here is exactly wrong.

Related questions

What if varying loses material?

Then you lose material. The requirement to vary does not come with an escape clause.

What if I cannot vary without being mated?

Then the position was lost. The rule does not create a way out that the position did not contain.

Try it on a real board

Reading an answer is one thing; playing it is another. Free, instant, and nothing to install.