中國象棋電腦著法表示
中國象棋電腦著法表示
象棋被列為士大夫們的修身之藝?,F(xiàn)在,則被視為是怡神益智的一種有益身心的活動。下面學習啦小編給你介紹中國象棋電腦著法表示,歡迎閱讀。
中國象棋電腦著法表示
一、棋盤的標記
象棋的著法表示,簡而言之就是某個棋子從什么位置走到什么位置。通常,表示方法可以分為“縱線方式”和“坐標方式”兩種,現(xiàn)在作簡要說明:
(1) 縱線方式,它是中國象棋常用的表示方法,即棋子從棋盤的哪條線走到哪條線。中國象棋規(guī)定,對于紅方來說的縱線從右到左依次用“一”到“九”表示,黑方則是“1”到“9”(如圖一所示),這種表示方式體現(xiàn)了古代中國象棋研究者的智慧。
(2) 坐標方式,它是國際象棋常用的表示方法,把每個格子按坐標編號(如圖二所示),只要知道起始格子和到達格子,就確定了著法,這種表示方式更方便也更合理,而且還可以移植到其他棋類游戲中。中國象棋也可以用這種方法來表示,按照國際象棋的規(guī)則,縱線從左到右(紅方)依次為a b c d e f g h i,橫線從下到上(紅方)依次為0 1 2 3 4 5 6 7 8 9(如圖三所示)。
二、棋子的名稱
為方便表示,中國象棋的棋子名稱除了用漢字以外,還可以用字母,字母可從國際象棋中稍加改動得到,而數字是為了方便棋譜的輸入(以便用在數字小鍵盤上)(見表一):
紅方黑方字母相當于國際象棋中的棋子數字
帥將KKing(王)1
仕士AAdvisor(沒有可比較的棋子)2
相象B[1]Bishop(象)3
馬馬N[2]Knight(馬)4
車車RRook(車)5
炮炮CCannon(沒有可比較的棋子)6
兵卒PPawn(兵)7
表一 中國象棋棋子代號
三、ICCS坐標格式
ICCS是中國象棋互聯(lián)網服務器(Internet Chinese Chess Server)的縮寫。在網絡對弈服務器處理著法時,把著法表示成起點和終點的坐標是最方便的
,因此這種格式最早在計算機上使用。
1. H2-E2(炮二平五) H7-E7(炮8平5)
2. E2-E6(炮五進四) D9-E8(士4進5)
3. H0-G2(馬二進三) H9-G7(馬8進7)
4. B2-E2(炮八平五) B9-C7(馬2進3)
5. E6-E4(前炮退二) I9-H9(車9平8)
在“中國象棋通用引擎協(xié)議”(UCCI協(xié)議)中,坐標格式得到進一步簡化,例如H2-E2記作h2e2,把符號限制在一個32位數據中,處理起來速度更快。
四、中文縱線格式
這種格式對于廣大象棋愛好者來說再熟悉不過了,但是這里還是要說明兩個重要的細節(jié)。
一、仕(士)和相(象)如果在同一縱線上,不用“前”和“后”區(qū)別,因為能退的一定在前,能進的一定在后。
二、兵要按情況討論:
(1) 三個兵在一條縱線上:用“前”、“中”和“后”來區(qū)別;
(2) 三個以上兵在一條縱線上:最前面的兵用“一”代替“前”,以后依次是“二”、“三”、“四”和“五”;
(3) 在有兩條縱線,每條縱線上都有一個以上的兵:按照“先從右到左,再從前到后”(即先看最左邊一列,從前到后依次標記為“一”和“二”,可能還有“三”,再看右邊一列)的順序,把這些兵的位置標依次標記為“一”、“二”、“三”、“四”和“五”,不在這兩條縱線上的兵不參與標記。
如右圖局面,四個兵分別位于四線和六線,下表列舉了幾種走法的坐標格式和縱線格式。
中文縱線格式數字縱線格式坐標格式
另外需要注意的是:
(1) 如果黑方出現(xiàn)數字,不管數字代表縱線標號還是前進或后退的格數,都用阿拉伯數字表示,在計算機中顯示全角的數字。但是代表同一縱線上不同兵的“一二三四五”(它們類似于“前中后”的作用)例外,例如例局面紅黑互換,那么某步著法就應該寫成“一卒平5”。
(2) 在傳統(tǒng)的象棋記譜中,如果發(fā)生以上這種情況,通常用五個字來表示,例如“前兵四平五”等,在計算機處理過程中就比較麻煩,因為4個漢字(一個漢字占16位)的著法可以儲存在一個64位的字當中(在C語言中數據類型為__int64或long long),而增加到5個漢字就比較麻煩了。黑方用全角的數字是同一個道理。
五、WXF縱線格式
WXF是世界象棋聯(lián)合會(World XiangQi Federation)的縮寫,在該組織建議的記譜方式中,漢字被字母和數字所代替,即“進”、“退”和“平”分別用符號“+”、“-”和“.”表示,“前”、“中”和“后”也分別用符號“+”、“-”和“.”表示,并且寫在棋子的后面(例如“前炮退二”寫成“C+-2”而不是“+C-2”),多個兵位于一條縱線時,代替“前中后”的“一二三四五”分別用“abcde”表示(這種情況極少發(fā)生)。
另外,代表棋子名稱的第一個字母,還可以用數字1到7表示,這是為了方便數字小鍵盤的輸入,例如“炮二平五”可以記作“62.5“(6代表炮)選用符號“+”、“-”和“.”也是出于這個考慮。
六、棋子代號問題
符號縱線格式是世界象棋聯(lián)合會(WXF)推薦的記譜格式,但是現(xiàn)在棋子的字母代號用法不一,主要問題集中在仕(士)、相(象)和馬的翻譯上。仕(士)譯成Advisor、Bachelor、Guard等,相(象)譯成Bishop、Elephant、Minister等,馬譯成Horse或Knight。
出于這點考慮,很多象棋軟件都能識別不同的代號,例如ElephantBoard將B和E都解釋為相(象),H和N都解釋為馬,SaoLa則可以由用戶自定義字母代號,等等。
七、簡體和繁體的識別問題
無論采取哪種格式記譜,棋譜最終應該被象棋軟件所識別。通常象棋軟件都應支持以上三種格式,除“中文縱線格式”以外,其他兩種格式都用英文和數字表示,不涉及中文字符,所以處理起來比較容易。而中文格式卻非常麻煩,除了涉及到簡體還是繁體外,還有字符集的問題。
象棋軟件應該充分考慮這個問題,例如ElephantBoard在這個問題上就考慮得十分周到。在GB字符集(大陸地區(qū))里,可識別簡體和繁體字符,而在Big5字符集(港臺地區(qū))里,由字符集轉換引起的問題也考慮進去了——表示棋子位置的“后”,由GB字符轉換為Big5字符時,仍然寫為“后”,但正確的寫法是“後”,無論如何這兩個“后(後)”都會被ElephantBoard認可。
看了“中國象棋電腦著法表示”的人還看了:
5.中國象棋棋子走法