Chinese Chess – Chessprogramming wiki

Home * Games * Chinese Chess

[1]

Xiangqi board, with pieces in their starting positions

Chinese Chess, or Xiangqi 象棋 [2],
is a chess variant which is very popular in East Asia, especially in China and Vietnam. The Chinese Chess set includes a board and 32 pieces for two players. The board has ten horizontal lines called ranks and nine vertical lines called files. Pieces are located not in the cells but intersectional points of ranks and files which are 90 in total. In the middle of the board the central seven files are interrupted by a horizontal space called the “River”, which splits the board into two parts. Each side of the board has a “Palace” a 3×3 area in the central base. The two sides are usually distinguished by colors, traditional names are red or black [3] but now they can be called white and black as chess. Sometimes the Xiangqi board could be considered as the presentation of the war between two countries when the standard chess presents for a battle only.

Pieces

There are 7 types: King, Advisor, Elephant, Rook, Cannon, Horse, and Pawn. Typically those pieces are made from small, simple wood pieces which some symbols (new way) or Chinese characters (traditional way) written on them. As the Chinese characters, pieces on the white side may use different characters than their counterparts on the black side. They are the same pieces, but names on the White side are subtly more noble than those on the Black side [4].

Cannon is the most interesting piece in Chinese chess.

Images

Name

Notation [5]

Value [6]

Movement

Restriction

Xiangqi General (Trad).svg
帥、將

King
(General)

K

moves and captures
one orthogonal step

may not leave the palace
The two kings may not face
each other along the same file
with no intervening piece

Xiangqi Advisor (Trad).svg
仕, 士

Advisor

(Guard)

A

2

moves and captures
one diagonal step

may not leave the palace

Xiangqi Elephant (Trad).svg
相、象

Elephant

E

2

moves and captures
two diagonal points

may not jump over intervening
pieces,may not cross the river

Xiangqi Horse (Trad).svg
傌, 馬

Horse

H

4

moves and captures
one orthogonal step
plus one diagonal step

blocked by orthogonal adjacent
pieces

Xiangqi Chariot (Trad).svg
俥, 車

Rook
(ChaRiot)

R

9

moves and captures
any distance orthogonally

may not jump over intervening
pieces

Xiangqi Cannon (Trad).svg
炮, 炮

Cannon

C

moves any distance orthogonally – captures by jumping a
single piece, friend or foe, in-between the orthogonal path
of attack towards the captured piece

Xiangqi Soldier (Trad).svg
兵、卒

Pawn
(Soldier)

P
(S)

1
2

moves and captures one step forward –
once crossed the river, also one point sideways

Rules

Basic

Basic rules are similar to chess with some modifications. Pieces can move and capture according to their individual ability and restriction along the lines including the “Riverbanks”. Xiangqi doesn’t have rules such as castles, en-passants, promotions. Instead it has some limitations such as King, Advisors must move inside their own Palaces, Horses and Elephants can be blocked (from moving), two King cannot “face” each other (stands in the same column without any piece between). The object of the game is to checkmate or stalemate (is a win as well) the opponent King aka General.

3-Folk Rules

When a position repeated 3 time (3 folks) the game will be terminated too. However, partly due to the freedom and power of the Rook over other pieces, and the limited freedom of the King, it is forbidden to repeat perpetually a direct thread (i.e. a perpetual check 長將, perpetual thread of capture 長捉, a check and then a threat of mate 一將一殺, or a combination of these). If no side violates the forbidden, game will be ruled as a draw.

Ruling the game when 3 forks happen is the hardest thing for fully understanding, installing for both players and software.

Notations

  • FEN: Chinese Chess can use Forsyth-Edwards Notation to save down positions, ignored some fields such as Castling and En passant target square. Here is FEN of the starting position: rheakaehr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RHEAKAEHR w – – 0 1

Programming

Chinese chess is quite similar to chess in multi-aspects thus its software can be developed and tested in similar ways. It can use almost all chess techniques, from traditional methods using Board Representation, Alpha-Beta search, Evaluation, Opening Book, Endgame Tablebases… to new ones using NNUE, AlphaZero methods…

However its programming is a bit harder to gain high levels due to some reasons:

a) The board is significantly larger (90 vs 64, 40% larger)

b) Even there’s no diagonal slide moves (such as Bishops), its pieces have more limitations, been blockable, Cannons have a special way to capture… The board size (90) can’t fit 64-bit integer either, the number of columns 9 can’t help quick devices… All may make move generators be more complex and slower

c) The search trees are usually larger. For example, when comparing Perft results at deep 7, Xiangqi number is 72 times as large

d) Evaluation of positions may require more knowledge, especially endgame positions

e) Rules 3-fork repetitions are hard to implement and maybe so slow

Sub variants

Engines

Photos

Xiangqi winners in Graz 2003, Pascal Tang, Zhi-Jian Tu and Shun-Chin Hsu [7]

Xiangqi winners Taipei 2005 with TD Jaap van den Herik and representative of the sponsor Acer Inc.,
Mingyang Zhao (Gold), Ming-Cheng Cheng (Silver) and Jiao Wang (Bronze) [8]

Yokohama 2013, Wen-Jie Tseng, Shi-Jim Yen, Harm Geert Muller and Jaap van den Herik [9]

Publications

1981 …

1990 …

2000 …

2002

2003

2004

2005 …

2006

2007

2008

2009

2010 …

2011

2013

2014

2015 …

2020 …

  • Maximilian Langer (2021). Evaluation of Monte-Carlo Tree Search for Xiangqi. B.Sc. thesis, TU Darmstadt, pdf

Forum Posts

1994

2000 …

2010 …

2015 …

2020 …

Chinese Chess

Computer Chinese Chess

Source Code

Xiangqi Cloud Database

References

Up one Level