怎样读棋谱
本页所有局面、着法与合法性判断,均由我们开源的规则引擎在构建时逐一校验。该引擎实现亚洲象棋联合会(WXF)规则,并以官方110局例的重复局面判例集作回归测试。
直接回答
象棋记谱写四样东西:哪个子、在第几路、往哪个方向、到哪里。炮二平五 就是“中路那门炮平到五路”。最容易出错的一条是:末位数字有时是路数,有时是步数,车炮兵将直进直退时数的是步数,马象士则永远写落点的路数。
一着棋的四个部分
一着棋写作四个字:棋子 + 路数 + 方向 + 目标。以 炮二平五 为例:
| 字 | 意思 |
|---|---|
| 炮 | 哪个子 |
| 二 | 它现在在第二路 |
| 平 | 横着走(不进不退) |
| 五 | 走到第五路 |
方向只有三个:进(向对方推进)、退(向自己一侧后撤)、平(横走,不改变所在横线)。
路数从自己的右边数起
这是读谱时最容易绕晕的一条,也是最该先弄清的。
每一方都从自己的右手边开始数九条路。双方面对面而坐,所以两套路数的方向正好相反:红方的一路和黑方的1路,在棋盘的两端。
红方用汉字数目 一二三四五六七八九,黑方用阿拉伯数字 1 2 3 4 5 6 7 8 9。这个区别很有用——光看数字就知道是谁走的。
最能说明问题的是两着互为镜像的马:
| 着法 | 中文 | WXF | 哪一只马 |
|---|---|---|---|
| 红方左马 | 马八进七 | H8+7 | 红方八路上的马 |
| 黑方右马 | 马8进7 | H8+7 | 黑方8路上的马 |
看 WXF 那一列:H8+7 和 H8+7 是同一个字符串,描述的却是棋盘两端的两只不同的马。WXF 本身分不出来,只有知道轮到谁走才分得出。中文格式反而没有这个问题——一个写 八,一个写 8。
末位数字:有时是路数,有时是步数
这是记谱法里唯一不规则的地方,也是自学看谱最常出错的一处。
| 什么情况 | 末位是 | 例子 |
|---|---|---|
| 任何横走(平) | 目标路数 | 车九平六 |
| 车、炮、兵、将直进直退 | 走了几步 | 车九进一 |
| 马、象、士 | 永远是目标路数 | 相三进五 |
道理并不难:前一类走直线,报步数不会有歧义;后一类走斜线,光报步数说不清是哪一条斜线,所以必须报落点。
比较这两着车——同一个子、同一路,末位数的是横线变化的格数,而不是某一条横线的编号:
| 中文 | WXF | 含义 |
|---|---|---|
| 车九进一 | R9+1 | 车向前走一步 |
| 车九进二 | R9+2 | 同一个车向前走两步 |
两个同样的子在同一路上:前与后
如果同一路上有两个车,“几路车”就指不清是哪一个。这时用位置代替路数:
- 前——靠近对方的那个。
- 后——靠自己这边的那个。
- 中——三个兵(卒)同处一路时的中间那个。
注意位置字写在棋子名之前,而路数是写在名字之后的:
| 中文 | WXF | 哪一门炮 |
|---|---|---|
| 前炮进一 | +C+1 | 两炮中靠前的那门,向前一步 |
| 后炮进一 | -C+1 | 靠后的那门,向前一步 |
士和象永远不用前后。同一路上的两个士(或两个象)必然相隔两条横线,走到同一个落点时一个是进、一个是退,方向本身就分得开,再加前后就多余了。
完整例子
象棋里出现最多的开局,头三着。点“下一步”,对照棋盘把每一着读一遍。
点“下一步”,把这个开局读一遍。
Xiangqi position. Red: soldier a3, soldier c3, soldier e3, soldier g3, soldier i3, cannon b2, cannon h2, chariot a0, horse b0, elephant c0, advisor d0, general e0, advisor f0, elephant g0, horse h0, chariot i0. Black: chariot a9, horse b9, elephant c9, advisor d9, general e9, advisor f9, elephant g9, horse h9, chariot i9, cannon b7, cannon h7, soldier a6, soldier c6, soldier e6, soldier g6, soldier i6. Red to move.
速查
| 棋子 | 红 | 黑 | WXF |
|---|---|---|---|
| 将/帅 | 帅 | 将 | K |
| 士/仕 | 仕 | 士 | A |
| 象/相 | 相 | 象 | E |
| 马 | 马 | 马 | H |
| 车 | 车 | 车 | R |
| 炮 | 炮 | 炮 | C |
| 兵/卒 | 兵 | 卒 | P |
棋盘上的棋子多用传统字形(帥 仕 相 傌 俥 炮 兵 与 將 士 象 馬 車 砲 卒),记谱写成简体时则作马、车、炮。两者所指相同,本站的棋盘两种写法都认。
此外还有一种 ICCS 坐标记法,把上面第一着写作 H2-E2。它是引擎和棋谱数据库用的格式,好处是不需要知道局面就能解析,缺点是没人这么说话。
常见错误
红黑两方从同一边数路数。
各从自己的右边数起。症状通常是把黑方的着法读到镜像的那一路上去,然后发现局面完全对不上。
把末位数字一律当成路数。
车、炮、兵、将直进直退时,末位是步数。车九进二 是向前走两步,不是走到第二条横线。
以为马的末位也是步数。
马、象、士永远写落点的路数——走斜线的子只报步数说不清是哪条斜线。
把前后写在棋子名后面。
位置字写在前面:前炮进一,不是“炮前进一”。写在后面的是路数。
相关问题
象棋棋谱怎么看?
四个字:棋子、路数、方向、目标。炮二平五 就是“二路的炮平到五路”。唯一不规则的是末位——横走和马象士写路数,车炮兵将直进直退写步数。
炮二平五是什么意思?
红方二路的炮横移到五路,也就是中路,正对黑方将门。这是象棋最流行的第一着,即中炮。
为什么红黑的路数是反的?
因为各自从自己的右手边数起,而双方面对面而坐。好处是红用汉字数目、黑用阿拉伯数字,光看数字就知道是谁走的。
“马八进七”和“马八进二”哪个对?
要看马实际落在哪一路。马写的是落点的路数而不是步数,所以末位取决于它跳到了第几路。
前炮、后炮怎么区分?
同一路上有两门炮时,靠近对方的写“前”,靠自己的写“后”,位置字写在“炮”之前:前炮进一、后炮进一。
WXF记谱法和中文记谱法有什么区别?
只有字形不同。WXF 用拉丁字母代替棋子名、阿拉伯数字代替汉字数目、+ − = 代替进退平,语法完全一样。WXF 略有歧义:两方都用阿拉伯数字,光看字符串不知道是谁走的。