關于舉行仕相升變成兵規則測試比賽的建議
 
象棋百科全書網 ([email protected]) 200711
 
  中國象棋在增加了仕(士)相(象)升變成兵(卒)的規則后,比賽將更富有趣味性和觀賞性。這個規則有以下幾個要點:
  一、仕(士)相(象)只能在底線升變;
  二、仕(士)相(象)升變成兵(卒)需要花一步棋,變成的兵(卒)占據原來仕(士)相(象)的位置,下一步棋才能走;
  三、升變是不可逆的,即兵(卒)不能變回仕(士)相(象);
  四、升變后的兵(卒)同其他兵(卒)的走法一樣,過河前每步只能前行一格,過河后才能橫走;
  五、只有本方兵()少于五個時,仕()()才能升變成兵()
 
  為驗證新規則起到的作用,象棋百科全書網進行了電腦模擬仕相升變成兵的測試比賽:
    http://www.ejnwjd.tw/live/promotion_test/
  在20局測試比賽中,有4(13151820)因為升變而使原本和局的棋分出了勝負。
戰例一 戰例二
戰例三 戰例四
  為使更廣泛地推廣新規則,象棋百科全書網計劃展開仕相升變成兵規則的電腦象棋聯賽測試賽,并尋求各UCCI引擎設計師的支持和積極參加。
 
  象棋巫師、UCCI引擎聯賽模擬器以及UCCI引擎示范程序ElephantEye已經為升變規則作了充分的準備,并使UCCI引擎協議擴充以支持仕相升變成兵的規則的選項(參閱《中國象棋通用引擎協議(UCCI協議))。上述三個程序和UCCI引擎協議的改進經驗表明,改進UCCI引擎以支持仕相升變成兵的規則并不困難,改進要點如下:
  一、在UCCI引擎解釋模塊中,增加對“setoption promotion true/false”語句的識別,象棋巫師和模擬器如使用仕相升變成兵的規則,必然會向引擎發送“setoption promotion true”的指令。這樣就使得同一版本的引擎可以適應不同的規則。
  二、輸出著法時,升變著法的起始格與目標格相同,例如引擎走“仕四變兵”,就輸出“bestmove f0f0”;
  三、象棋巫師和模擬器將升變著法被定性為吃子著法,所以在向引擎輸送局面信息時,不會在“position fen ... moves ...”的著法列表中包含升變著法,所以引擎沒有必要識別諸如“f0f0”這樣的著法。
  四、大多數程序的棋盤結構使用棋子數組,并且只給每方兵()預留5個位置,升變時首先檢查哪個位置有空位,升變后在該空位上放一個棋子,并將升變的仕()或相()清空。
  五、大多數程序的棋盤結構使用BitRankBitFile技術,升變著法不改變棋盤的任何BitRankBitFile
  六、引擎在修改著法生成器時,可以將升變著法寫入吃子的著法生成器中;判斷著法合理性的函數也應考慮升變著法。
  七、由于升變著法肯定無法用來躲避將軍和交換子力,所以被將軍和靜態搜索時可跳過升變著法的生成。
  八、子力位置價值表需要考慮升變后的兵()在過河前的某些位置的分數,以鼓勵兵()盡快過河;另外仕()()的潛在價值也應有所提高,特別是沒有防守壓力時仕()()價值不能被過分低估。
  九、判斷和棋時,雙方都只剩下仕()(),不再成為和棋的判斷依據。
  十、支持升變的引擎可以用象棋巫師(3.5+)UCCI引擎聯賽模擬器(3.5+)進行測試,并用以上四個戰例中的關鍵局面來測試升變功能是否正常。
 
  UCCI引擎設計師若有意參加升變規則的測試比賽,可填寫《電腦象棋聯賽報名表》(http://www.ejnwjd.tw/league/register.doc),注名參賽期號為“升變測試賽”,發送給電腦象棋聯賽臨召集人。
  • 上一篇 電腦象棋聯賽規則
  • 下一篇 電腦象棋聯賽報名和UCCI引擎登記辦法
  • 返 回 象棋百科全書——電腦象棋聯賽
  • www.ejnwjd.tw
    快乐双彩今晚开奖结果