【中國象棋】不同的記譜方式

最近在做ejcees,花時間最多的還是不同格式的導出導入。

下面總結一下東萍和PGN格式的差別。

首先是東萍格式,它大概從2004年左右就定下了,這挺好,以後不會再改了。當存在兩條縱線上都有多個兵卒,則會有「前二進一」這種描述,等於是「前兵二進一」的「兵」省略了。

東萍的說法是:

适用于各种兵卒特殊情况,是目前中文表示法的完善和补充,车马炮士象和兵卒普通局面下仍然采用老中文记谱方法,目前本中文棋谱表示方法已与华工橘中秘排局研究会核心成员667、将族、yjr123等取得一致。

在兵卒有两排达到或超过2个的时候,省略兵卒名称,本着法本来为前兵三进一,省略后就是前三进一了!

就是這麼任性!不需要任何特級大師的背書!我們網友自己決定!

寡人謹此代表「弈趣極光」,向667、將族、yjr123等華工橘中秘排局研究會的核心成員前輩,致以誠摯的問候!

雖然是網友決定的,但是這種表示法已經成為了大多數網站的標準,連皮卡魚網頁版都是用的這套。

rotate 5k3/P8/9/P5P2/2p5p/P5P2/2p5p/9/8p/3K5 w - - 0 1 标题: 特殊局面下兵卒走法的中文棋谱表示方法 日期: 2007.08.26 作者: 东萍公司 来源网站: http://www.hgchess.com/ 适用于各种兵卒特殊情况,是目前中文表示法的完善和补充,車馬炮士象和兵卒普通局面下仍然采用老中文记谱方法,目前本中文棋谱表示方法已与华工橘中秘排局研究会核心成员667、將族、yjr123等取得一致。 【主变】 1. 前三進一 在兵卒有两排达到或超过2个的时候,省略兵卒名称,本着法本来为前兵三進一,省略後就是前三進一了! 1. ………… 前3進1 2. 中九平八 本来是中兵九平八,如无右侧2个兵,那应该是中兵平八 2. ………… 中9平8 3. 前三平四 前3平4 4. 兵八平九 卒8平9 5. 前兵平八 此时只有1排兵达到2个以上,因此不用省略 5. ………… 前兵平8 6. 兵八平九 卒8平9 7. 兵四平九 卒4平9 8. 前兵進一 一排有4个兵时,按照前二三後来排序 8. ………… 前兵進1 9. 二兵進一 一排有4个兵时,按照前二三後来排序 9. ………… 二兵進1 注意这里是汉字二,不是全角数字2 10. 三兵進一 一排有4个兵时,按照前二三後来排序 10. ………… 三兵進1 11. 兵三進一 卒3進1 12. 後兵進一 一排有5个兵时,按照前二三四後来排序 12. ………… 後兵進1 13. 後兵進一 一排有5个兵时,按照前二三四後来排序 13. ………… 後兵進1 棋谱由 http://www.dpxq.com/ 生成

但是在此之前還有另一套,就是《象棋百科全書》規定的方法(來自這裡):

中文纵线格式

这种格式对于广大象棋爱好者来说再熟悉不过了,但是这里还是要说明两个重要的细节。

一、仕(士)和相(象)如果在同一纵线上,不用“前”和“后”区别,因为能退的一定在前,能进的一定在后。

二、兵要按情况讨论:

(1) 三个兵在一条纵线上:用“前”、“中”和“后”来区别;

(2) 三个以上兵在一条纵线上:最前面的兵用“一”代替“前”,以后依次是“二”、“三”、“四”和“五”;

(3) 在有两条纵线,每条纵线上都有一个以上的兵:按照“先从右到左,再从前到后”(即先看最左边一列,从前到后依次标记为“一”和“二”,可能还有“三”,再看右边一列)的顺序,把这些兵的位置标依次标记为“一”、“二”、“三”、“四”和“五”,不在这两条纵线上的兵不参与标记。

如右图局面,四个兵分别位于四线和六线,下表列举了几种走法的坐标格式和纵线格式。

中文纵线格式 数字纵线格式 坐标格式
一兵平五 Pa.5 F8-E8
二兵平五 Pb.5 F6-E6
兵五进一 P5+1 E7-E8
三兵平五 Pc.5 D8-E8
四兵平五 Pd.5 D6-E6

另外需要注意的是:

(1) 如果黑方出现数字,不管数字代表纵线标号还是前进或后退的格数,都用阿拉伯数字表示,在计算机中显示全角的数字。但是代表同一纵线上不同兵的“一二三四五”(它们类似于“前中后”的作用)例外,例如例局面红黑互换,那么某步着法就应该写成“一卒平5”。

(2) 在传统的象棋记谱中,如果发生以上这种情况,通常用五个字来表示,例如“前兵四平五”等,在计算机处理过程中就比较麻烦,因为4个汉字(一个汉字占16位)的着法可以储存在一个64位的字当中(在C语言中数据类型为__int64或long long),而增加到5个汉字就比较麻烦了。黑方用全角的数字是同一个道理。

《象棋百科全書》並不是一本書,它其實是一個網站,網址為:https://www.xqbase.com/,它也是著名象棋軟體「象棋巫師」的官方網站。

我的抉擇

我一開始做ejcees時,主要還是想兼容皮卡魚網頁版,所以我一開始用的就是東萍的那套,同時內碼直接就使用東萍英文。

但是當ejcees項目接近尾聲時,我發現我更喜歡象棋百科全書規定的方法,尤其是我在網上找到一個網站也用的是這套之後。原因是它不會把「兵卒」省略掉。

於是ejcees程式代碼又要大改,把機器碼(如h2e2)作為「內碼」。

印象中,很多棋書用的就是百科全書的這套,它的年代是「2004年11月初稿,2006年2月修订」。看上去挺正式,不像東萍那樣,幾個網友商量之後就確定了。

糾結XWF

WXF是世界象棋联合会(World XiangQi Federation)的缩写,在该组织建议的记谱方式中,汉字被字母和数字所代替,即“进”、“退”和“平”分别用符号“+”、“-”和“.”表示,“前”、“中”和“后”也分别用符号“+”、“-”和“.”表示,并且写在棋子的后面(例如“前炮退二”写成“C+-2”而不是“+C-2”),多个兵位于一条纵线时,代替“前中后”的“一二三四五”分别用“abcde”表示(这种情况极少发生)。

另外,代表棋子名称的第一个字母,还可以用数字1到7表示,这是为了方便数字小键盘的输入,例如“炮二平五”可以记作“62.5“(6代表炮)选用符号“+”、“-”和“.”也是出于这个考虑。

然而我找到WXF的官網,卻沒有見到這種格式的介紹。

原本一開始我是放棄支援這種格式的,因為如果它用「abcde」來表示「一二三四五」的話,那「a、b、c」分別指「士、象、炮」,不就有歧義了嗎?直到我見到這個頁面中,了解到它的黑方也是用大寫字母(而不是像東萍英文格式那樣轉小寫),則小寫的abc就只能代表數字了。

Leave a Comment