Sashité for Developers
  1. Sashité for Developers
  2. Rules
  3. Xiongqi

Xiongqi

Rule System for Xiongqi (熊棋, “Panda Chess”) built on the Game Protocol.


1. Board

8×8 grid encoded in CELL.

Valid coordinates: a1h8

FEEN serialization: rank 8 → rank 1, file a → file h, / between ranks.

River: conceptual boundary between ranks 4 and 5.

Side Before river After river
First (South) ranks 1–4 ranks 5–8
Second (North) ranks 5–8 ranks 1–4

2. Style

SNN SIN Side
Xiongqi X first (South)
Xiongqi x second (North)

3. Pieces

All pieces encoded in PIN.

PIN Name Notes
G^ General Terminal (initial)
D^ Dragon Terminal (after face-to-face transformation)
A Advisor  
B Bear  
C Cannon Screen capture
E Empress From Soldier promotion
H Horse Blockable
R Chariot  
S Soldier Before river
+S Soldier After river
g^ General Terminal (initial)
d^ Dragon Terminal (after face-to-face transformation)
a Advisor  
b Bear  
c Cannon  
e Empress  
h Horse  
r Chariot  
s Soldier Before river
+s Soldier After river

4. Initial Position

Encoded in FEEN:

rhbag^bhr/2c2c2/ssssssss/8/8/SSSSSSSS/2C2C2/RHBAG^BHR / X/x

5. Movements

All pseudo-legal moves encoded in GGN. Patterns shown are representative.

5.1 General

{
  "X:G^": {
    "e4": {
      "d4": [{ "must": { "d4": "empty" } }, { "must": { "d4": "enemy" } }],
      "e3": [{ "must": { "e3": "empty" } }, { "must": { "e3": "enemy" } }],
      "e5": [{ "must": { "e5": "empty" } }, { "must": { "e5": "enemy" } }],
      "f4": [{ "must": { "f4": "empty" } }, { "must": { "f4": "enemy" } }]
    }
  }
}

One square orthogonally. No palace restriction.

5.2 Dragon

{
  "X:D^": {
    "e4": {
      "d4": [{ "must": { "d4": "empty" } }],
      "e3": [{ "must": { "e3": "empty" } }],
      "e5": [{ "must": { "e5": "empty" } }],
      "f4": [{ "must": { "f4": "empty" } }],
      "a4": [{ "must": { "b4": "empty", "c4": "empty", "d4": "empty", "a4": "enemy" } }],
      "e1": [{ "must": { "e2": "empty", "e3": "empty", "e1": "enemy" } }]
    }
  }
}

5.3 Advisor

{
  "X:A": {
    "e4": {
      "d3": [{ "must": { "d3": "empty" } }, { "must": { "d3": "enemy" } }],
      "d5": [{ "must": { "d5": "empty" } }, { "must": { "d5": "enemy" } }],
      "f3": [{ "must": { "f3": "empty" } }, { "must": { "f3": "enemy" } }],
      "f5": [{ "must": { "f5": "empty" } }, { "must": { "f5": "enemy" } }]
    }
  }
}

One square diagonally. No palace restriction.

5.4 Bear

{
  "X:B": {
    "c1": {
      "f4": [
        { "must": { "d2": "empty", "e3": "empty", "f4": "empty" } },
        { "must": { "d2": "empty", "e3": "empty", "f4": "enemy" } }
      ]
    }
  }
}

Any number of squares diagonally (like Chess Bishop). Path must be clear.

5.5 Cannon

{
  "X:C": {
    "c2": {
      "c5": [{ "must": { "c3": "empty", "c4": "empty", "c5": "empty" } }],
      "c8": [
        { "must": { "c3": "empty", "c4": "empty", "c5": "empty", "c6": "empty", "c8": "enemy" }, "deny": { "c7": "empty" } }
      ]
    }
  }
}

5.6 Empress

{
  "X:E": {
    "d4": {
      "d8": [{ "must": { "d5": "empty", "d6": "empty", "d7": "empty", "d8": "empty" } }, { "must": { "d5": "empty", "d6": "empty", "d7": "empty", "d8": "enemy" } }],
      "c2": [{ "must": { "c2": "empty" } }, { "must": { "c2": "enemy" } }],
      "e2": [{ "must": { "e2": "empty" } }, { "must": { "e2": "enemy" } }],
      "b3": [{ "must": { "b3": "empty" } }, { "must": { "b3": "enemy" } }],
      "f3": [{ "must": { "f3": "empty" } }, { "must": { "f3": "enemy" } }],
      "b5": [{ "must": { "b5": "empty" } }, { "must": { "b5": "enemy" } }],
      "f5": [{ "must": { "f5": "empty" } }, { "must": { "f5": "enemy" } }],
      "c6": [{ "must": { "c6": "empty" } }, { "must": { "c6": "enemy" } }],
      "e6": [{ "must": { "e6": "empty" } }, { "must": { "e6": "enemy" } }]
    }
  }
}

5.7 Horse

{
  "X:H": {
    "b1": {
      "a3": [{ "must": { "b2": "empty", "a3": "empty" } }, { "must": { "b2": "empty", "a3": "enemy" } }],
      "c3": [{ "must": { "b2": "empty", "c3": "empty" } }, { "must": { "b2": "empty", "c3": "enemy" } }],
      "d2": [{ "must": { "c1": "empty", "d2": "empty" } }, { "must": { "c1": "empty", "d2": "enemy" } }]
    }
  }
}

L-shape via orthogonal step then diagonal step. Blockable: leg square must be empty.

First step Leg Destinations
North (file, rank+1) (file-1, rank+2), (file+1, rank+2)
South (file, rank-1) (file-1, rank-2), (file+1, rank-2)
East (file+1, rank) (file+2, rank+1), (file+2, rank-1)
West (file-1, rank) (file-2, rank+1), (file-2, rank-1)

5.8 Chariot

{
  "X:R": {
    "a1": {
      "a4": [
        { "must": { "a2": "empty", "a3": "empty", "a4": "empty" } },
        { "must": { "a2": "empty", "a3": "empty", "a4": "enemy" } }
      ]
    }
  }
}

Any number of squares orthogonally (like Chess Rook). Path must be clear.

5.9 Soldier (before river)

{
  "X:S": {
    "e3": {
      "e4": [{ "must": { "e4": "empty" } }, { "must": { "e4": "enemy" } }]
    }
  }
}

One square forward only. Crossing river mutates S+S.

5.10 Soldier (after river)

{
  "X:+S": {
    "e5": {
      "d5": [{ "must": { "d5": "empty" } }, { "must": { "d5": "enemy" } }],
      "e6": [{ "must": { "e6": "empty" } }, { "must": { "e6": "enemy" } }],
      "f5": [{ "must": { "f5": "empty" } }, { "must": { "f5": "enemy" } }]
    }
  }
}

One square forward or sideways. Cannot move backward.


6. Special Move Notation

Encoded in PMN.

Move PMN Description
River crossing e4-e5 Soldier crosses river, mutates S → +S
Soldier promotion e8-e8/E Soldier on last rank promotes to Empress
Face-to-face e4~e4 Both Generals transform to Dragons

6.1 Face-to-face transformation

When both Generals occupy the same file with no pieces between them, both immediately transform to Dragons:

This is triggered by any move creating the alignment (General move or intervening piece removal).

6.2 Soldier promotion

When a Soldier ends a move on the last rank (rank 8 for South, rank 1 for North), promotion is optional. Choices:

Promotion Result
Empress E / e
Advisor A / a
Cannon C / c
Chariot R / r
Bear B / b
Horse H / h

Promotion to General or Dragon is forbidden.


7. Termination

Status values from CGSN with game-specific interpretation.

7.1 Decisive

CGSN Status Result
mareking Terminal Piece (General or Dragon) captured → capturing player wins
stalemate No legal move → active player loses
resignation Resigning player loses
repetition Player causing repetition loses

7.2 Draw

CGSN Status Condition
insufficient Both sides have only their Terminal Piece remaining
movelimit 50 moves without capture or Soldier move

8. Constraints

Rules transforming pseudo-legal moves (GGN) into legal moves.

8.1 No check constraint

Responding to check is not mandatory. A player may leave their Terminal Piece (General or Dragon) in check. If the Terminal Piece is captured, the game ends immediately.

8.2 Stalemate is loss

Unlike Chess, having no legal move results in a loss for the active player.

8.3 Repetition

A move is illegal if it:

  1. Uses the same piece
  2. From the same origin
  3. To the same destination
  4. With the same promotion choice (if applicable)
  5. AND produces an identical position to one that occurred previously

Position identity includes:

The player committing such repetition loses immediately.

8.4 No drops

Captured pieces are stored in Hand but cannot be dropped back onto the Board.


9. Reference

10. License

Open Web Foundation Agreement 1.0 (OWFa 1.0) — OWFa 1.0