车
三张棋盘上唯一走法完全相同的子。沿横线或竖线走,格数不限,直到被挡住;吃掉路上遇到的第一个对方棋子。
在空棋盘的角上,它在沙特兰兹和国际象棋里有 14 种走法,在象棋里有 17 种。走法没有变,只是象棋的棋盘多一条竖线、多两条横线。
64 个格子,90 个交叉点
车、马、象、士、将(王):象棋和国际象棋从棋盘角上数起,排的是同一个次序。选一枚棋子,在三张棋盘上同时看它怎么走:一千年前的沙特兰兹、今天的国际象棋、今天的象棋。欧洲棋盘上的象和后,曾经和今天象棋里的象、士走得几乎一样。
国际象棋的棋子,中文名大多不用另起:rook 叫车,knight 叫马,bishop 叫象,pawn 叫兵,都是象棋里现成的名字。这几个名字比看上去更贴切。
英语里叫 bishop(主教)的那个子,一千年前在阿拉伯人的棋盘上叫 al-fīl,意思就是象,走法是沿斜线正好跳两格。中世纪的欧洲人给它雕上了主教冠,旁边照片里的就是一枚,可是下棋时它仍旧按象的走法走。象棋里的象,今天走的还是这两格的“田”字。
下面的棋盘一次只摆一个子。先看象,再看士。

三张棋盘上唯一走法完全相同的子。沿横线或竖线走,格数不限,直到被挡住;吃掉路上遇到的第一个对方棋子。
在空棋盘的角上,它在沙特兰兹和国际象棋里有 14 种走法,在象棋里有 17 种。走法没有变,只是象棋的棋盘多一条竖线、多两条横线。
先直走一格,再向外斜走一格,也就是“马走日”。三种棋里,马的八个落点完全一样。
国际象棋和沙特兰兹的马是跳过去的,中间有子也照走。象棋的马走“日”字:先沿横线或竖线走一点,再向外斜走一点。如果第一点上有棋子,这个方向的两个落点就都到不了,这就是蹩马腿。点“在路上放一个子”,对照三张棋盘。
在沙特兰兹里,象沿斜线正好跳两格,中间有没有子都可以跳,此外没有别的走法。从原位出发,它整盘棋只能到 64 格中的 8 格;棋盘上四个象各走各的一组格子,所以一个象永远吃不到另一个象。
象棋的象走的是同一步:沿斜线正好两点,也就是“象走田”。不同之处有两点。它不能跳,田字中心有子就走不了,叫塞象眼。它也不能过河,所以总共只能到 7 个点。
国际象棋的象沿斜线走,格数不限,能到 32 格。这种走法在欧洲的记载始于 15 世纪末。
国际象棋里王旁边的那个子,先是谋士,后来才成了王后。在沙特兰兹里,这个叫 firzan 的子只能斜走一格。
象棋的士走的也是斜着的一步,而且不出九宫,总共只能到 5 个点。
国际象棋的后可以朝八个方向走,格数不限:在一个格子上最多有 27 种走法,而 firzan 最多只有 4 种。用这种“后”下的棋,现存最早的一局记录在瓦伦西亚的诗篇《爱之棋》(Scachs d'amor)里,一般认为写于 1475 年前后。
在沙特兰兹和国际象棋里,王可以朝任何方向走一格。国际象棋后来又加了王车易位。
象棋的将和帅只能沿直线走一格,不能斜走,也不出九宫,一共 9 个点。将帅不能在同一条竖线上直接照面,所以隔着整张棋盘,将也能牵制对方的子。
三种棋里都是向前走一步,只进不退。
沙特兰兹和国际象棋的兵直走斜吃:吃子时向斜前方走一格。象棋的兵卒怎么走就怎么吃,直着向前。过河以后还可以横走:把它移过河看看。
国际象棋加了第一步可以走两格的规则。沙特兰兹的兵走到底线变成 firzan;国际象棋的兵到达对方底线时,必须升变为后、车、象或马;象棋的兵卒始终不变。
没有这个子。沙特兰兹里没有哪个子需要隔着别的子走。
没有这个子。国际象棋里没有隔子吃子的走法。
炮走起来和车一样。吃子时必须隔着正好一个子,这个子叫炮架,红黑都可以;炮架后面遇到的第一个子如果是对方的,就可以吃,如果是己方的,就不能吃。点“在路上放一个子”,炮就有了目标。
有这条规则的炮,见于 11 世纪相传为司马光(1019–1086)所作的《七国象戏》,那是一种七人玩的棋。它什么时候进入两人对下的象棋,没有确切记载。
点棋盘上任意一格或一点,把棋子移到那里。用键盘:先选中一张棋盘,再按方向键。
欧洲人接过这些棋子时,也一并接受了它们的阿拉伯语名字。后来各种语言有的沿用,有的借用,有的另起新名:有些名字跟着棋子的外形走,有些跟着走法走,为什么这样改,有的至今还有争议。这个子在俄语里是象,在德语里是跑者,在英语里是主教,在法语和罗马尼亚语里是傻子,在捷克语里是射手,在印地语里是骆驼。下面按照这些词今天的字面意思,把 31 种语言的叫法归了类;有的词今天只用来指这个棋子,也单独列出。
汉语走的是相反的路:国际象棋的车、马、象、兵,用的就是象棋的原名。
中世纪法语把这个子叫 alfin 或 aufin,来自阿拉伯语 al-fīl(象)。后来 fol(今作 fou,傻子)取代了它;约 1275–1280 年的《玫瑰传奇》里已经把这个子叫 fol。这一变化是怎么发生的,词源学家看法不一。西班牙语和加泰罗尼亚语的 alfil 沿用了阿拉伯语原词,今天不再有别的意思。意大利语 alfiere 今天的意思是旗手。英语 bishop 作为棋子名的记载始于 1562 年。
俄语 ферзь 经突厥语来自波斯语里“谋士”的名字,在今天的俄语里只指这个棋子。夫人和王后是欧洲的叫法。
英语 rook 就是波斯语的 rukh。一般认为这个子来自印度的战车,梵语叫 ratha,但 rukh 一词本身是什么意思,尚有争议。在印地语里,角上的子是象,bishop 则是骆驼。
王在各种语言里几乎都叫国王或“沙”(shah)。兵在多数语言里是步兵,在德语和北欧各语言里是农夫。

象棋有楚河汉界、九宫,还有隔子吃子的炮。国际象棋有王车易位、兵第一步走两格,兵走到底线还能变成后。下面每一条规则都只在一种棋里有。
今天的象棋
走起来和车一样,吃子却必须隔着正好一个子,己方、对方的都行,被吃的只能是对方的子。图中它只能隔着自己的兵吃掉对面的马。
今天的象棋
炮占着马正前方紧邻的交叉点,蹩住了马腿,所以马到不了前方的两个落点。国际象棋的马在同样的位置可以直接跳过去。
今天的象棋
同一条竖线上如果中间没有子,将和帅就直接照面,这是不允许的。图中的车只能沿这条竖线走。
今天的象棋
将帅和士不出九宫,象不过河。防守的这几个子合起来能到的就是图中涂色的 15 个点:九宫 9 个,象 7 个,其中一个重合。
今天的国际象棋
国际象棋里每方一局可以走一次:王向车的方向走两格,车越过王落在它的另一侧。条件是王和这个车都没有动过,两者之间没有别的子,王没有被将军,经过和到达的格子也不受攻击。沙特兰兹和象棋都没有这种走法。
今天的国际象棋
国际象棋的兵第一步可以走两格。旁边的对方兵可以当它只走了一格,把它吃掉,但只能在紧接着的那一步吃。这两条规则只有国际象棋才有。
今天的国际象棋
国际象棋的兵到达对方底线时,必须升变为后、车、象或马。在沙特兰兹里它只能变成 firzan,也就是只能斜走一格的那个子。象棋的兵卒不升变。
沙特兰兹,约公元 1000 年
在沙特兰兹里,一方除了王以外的子全部被吃光,即使没有被将死,通常也算输;如果只剩的这个王能立刻吃掉对方最后一个子,就算和棋。国际象棋和象棋都没有这条规则。
| 沙特兰兹 | 国际象棋 | 象棋 | |
|---|---|---|---|
| 将死 | 胜 | 胜 | 胜 |
| 轮到走棋的一方没有被将军,却没有合法着法(象棋称“困毙”,国际象棋称“逼和”) | 无子可动的一方输 | 和棋 | 无子可动的一方输 |
| 一方只剩一个王 | 通常算输 | 没有这条规则 | 没有这条规则 |
一共十步棋,每一步分别放在沙特兰兹、国际象棋和象棋里。先逐张棋盘判断,再看答案。
1/10 让象斜着走两格,中间那一格上有一枚己方棋子。
2/10 让象沿一条没有棋子阻挡的斜线一直走:在 8 × 8 的棋盘上走五格,在象棋盘上走四格。
3/10 让象斜着走两格,越过棋盘中线,途中没有棋子阻挡。
4/10 让王旁边的那个子(士或后)斜着走一格。
5/10 让王旁边的那个子(士或后)向正前方走三格。
6/10 让马向前两格、再向旁一格,它的正前方紧挨着一枚己方棋子。
7/10 让车沿一条没有棋子阻挡的竖线走四格。
8/10 让王(将帅)斜着走一格。
9/10 让兵从初始位置一次向前走两格。
10/10 让一个已经到了对方半边棋盘的兵横着走一格。
一般认为这两种棋有亲缘关系。两支军队的名字和排列次序太接近,多数棋史学者不认为这是巧合。至于它们究竟是什么关系,就难说得多,现存的证据还不足以下结论。
记载最清楚的一条路线,是从印度到波斯,再到阿拉伯世界和欧洲,这一段基本没有争议。缺少的是这样一份文献:它能说明这种棋的早期形态在什么时候、以什么方式、朝哪个方向在印度和中国之间传播。
默里(H. J. R. Murray,1913)认为这种棋发明于印度,象棋由它演变而来,并吸收了中国原有的名称和更早的棋戏。这仍是目前的主流看法。
李约瑟(Joseph Needham,1962)认为,它的前身是中国一种与天文、占卜有关的“象戏”,7 世纪在印度变成了模拟战争的棋。
卡佐(Jean-Louis Cazaux,2001)提出“混合说”:东方的一种棋为印度和波斯的棋提供了一些要素。他自己说明这只是假说。
李祥甫(David H. Li,1998)认为象棋是韩信在公元前 203 年前后发明的。巴纳沙克(Peter Banaschak)等批评者指出,没有早期文献支持这个说法。
下面按时间列出有年代可考的证据。其中没有一条能说明这种棋在印度和中国之间是朝哪个方向传的。
569 年
《周书》记载,北周武帝撰成《象经》,召集百官讲说,所讲的游戏叫“象戏”。书已失传。留下来的描述讲的是日月星辰,这种象戏和今天的象棋有没有关系,学者看法不一。
7 世纪
印度北部的一部梵语宫廷传记里有一句双关语,说到八乘八的棋盘和“四军”(caturaṅga):象、马、车、步兵。这是印度最可靠的早期记载,但没有讲规则。
6 至 9 世纪之间
一篇中古波斯语文献讲述印度国王把这种棋当作谜题送到波斯宫廷。文中列出了棋子的名字,写的明显就是这种棋。故事的背景在 6 世纪;现存文本成书较晚,学者给出的年代从萨珊王朝末期到 9 世纪不等。
9 世纪初
牛僧孺(779–847)《玄怪录》里有一则故事,背景是宝应元年(762 年):岑顺夜里看见两支寸把高的军队按规矩对阵,军师说:“天马斜飞度三止,上将横行系四方。辎车直入无回翔,六甲次第不乖行。”后来家人在屋里掘出一座古墓,墓中有“金床戏局,列马满枰”,这才明白军师的话说的是“象戏行马之势”。这通常被视为中文文献中对这类棋最早的描述。
9 至 10 世纪
巴格达阿拔斯宫廷里的棋手写下了讲开局和排局的专著,其中有阿德利(al-ʿAdlī,约 850 年)和苏利(aṣ-Ṣūlī,卒于 946 年)。本页所示的沙特兰兹走法,依据的就是后世转抄这些著作的手稿。
约 1000 年
瑞士一座修道院保存的一首拉丁文诗描写了这种棋和它的棋子,写作年代在 10 世纪末到 11 世纪之间。这是欧洲最早讲到这种棋的文献之一,诗里已经提到双色棋盘,说它是个方便的新办法。
1019–1086 年
相传为司马光所作的《七国象戏》供七人对局,每方都有隔一子吃子的炮。晁补之 1079 年的《广象戏图序》讲的又是一种在十一路棋盘上下的棋。可见当时有好几种相近的棋同时存在。
960–1127 年
目前能够确认的最早的出土象棋子,就属于这一时期。1997 年,洛阳一座宋墓出土了一副 32 枚的瓷质象棋。
1150–1200 年
在苏格兰刘易斯岛发现的海象牙棋子,大英博物馆定为 1150–1200 年。其中的主教,是现存最早一批把这个子雕成教士的实物之一。在当时的棋盘上,它的走法仍然是象的走法。
1283 年
为卡斯蒂利亚国王阿方索十世编成的一部手抄本,讲了各个棋子和走法,收有 103 个排局,大多出自阿拉伯文献。书中的象仍然叫 alfil,仍然是跳着走的。
13 世纪
13 世纪编成的日用类书《事林广记》里收有象棋的内容,今天的棋手看了也认得出来。
约 1475 至 1497 年
瓦伦西亚的诗篇《爱之棋》一般认为写于 1475 年前后,其中记录了现存最早的一局后和象都采用远距离走法的对局。卢塞纳(Luis Ramírez de Lucena)约在 1496–1497 年于萨拉曼卡印行的棋书,新旧两种下法都教。
16 世纪末
据棋史学家默里(H. J. R. Murray)说,最早把中国象棋的情况连同实物棋具带到欧洲的,是耶稣会传教士。
1632 年
讲开局和残局的棋谱《橘中秘》刊行,至今仍有人研读。



今天能说的是:象棋在中国形成了自己的形制,有河界、九宫和炮,到宋代已经可以明确辨认;在欧洲,后和象的远距离走法见于 15 世纪末的记载,此后国际象棋的其他规则还在继续变化。再往前,两条线索都越来越模糊,至今没有人能把它们追溯到同一个有年代可考的起点。

三张棋盘上的走法都由同一套规则程序生成,并用公开发表的数字核对过:从初始局面出发,以一方走一着为一步,国际象棋走完一至四步后的合法走法序列数分别是 20、400、8,902 和 197,281,象棋走完一至三步后分别是 44、1,920 和 79,666。每个子能到多少格、多少点,也是用这套规则数出来的。