3 variants of Chinese Chess. The river divides the board, the palace constrains the general, and the cannon leaps over screens to capture. All expressed as plugin parameters on the same grid topology.
Xiangqi's unique mechanics (river crossing, palace confinement, cannon screen-jump, flying general) are all declarative parameters. No hardcoded board knowledge.
The full 9x10 game with river, palace, and all classic piece types. The cannon captures by jumping exactly one piece (the screen). The flying general rule prevents generals from facing on an open file.
engine:
topology:
type: grid
rows: 10
cols: 9
players: [red, black]
setup: "rheakaehr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RHEAKAEHR"
plugins:
xiangqi:
hasRiver: true
flyingGeneralRule: true
cannonJumpToMove: false
Standard Xiangqi (9x10) — river, palace, cannon, flying general
A condensed 7x7 variant that preserves the essential xiangqi mechanics on a smaller board. Faster games, same tactical depth from the cannon and river interactions.
engine:
topology:
type: grid
rows: 7
cols: 7
players: [red, black]
setup: "rckaecr/7/p1p1p1p/7/P1P1P1P/7/RCKAECR"
plugins:
xiangqi:
hasRiver: true
flyingGeneralRule: true
cannonJumpToMove: false
MiniXiangqi (7x7) — compact board, same mechanics
A streamlined variant on a smaller board that focuses purely on tactical piece interaction. Reduced piece count creates immediate contact and sharp play from move one.
engine:
topology:
type: grid
rows: 7
cols: 6
players: [red, black]
setup: "ekaeke/1c2c1/p1pp1p/P1PP1P/1C2C1/EKAEKE"
plugins:
xiangqi:
hasRiver: true
flyingGeneralRule: true
cannonJumpToMove: false
Xiangqi 42 (6x7) — tactical focus, immediate contact
Every xiangqi variant is playable with AI opponents at multiple difficulty levels.