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