- 关于举行仕相升变成兵规则测试比赛的建议
-
-
- 中国象棋在增加了仕(士)相(象)升变成兵(卒)的规则后,比赛将更富有趣味性和观赏性。这个规则有以下几个要点:
- 一、仕(士)相(象)只能在底线升变;
- 二、仕(士)相(象)升变成兵(卒)需要花一步棋,变成的兵(卒)占据原来仕(士)相(象)的位置,下一步棋才能走;
- 三、升变是不可逆的,即兵(卒)不能变回仕(士)相(象);
- 四、升变后的兵(卒)同其他兵(卒)的走法一样,过河前每步只能前行一格,过河后才能横走;
- 五、只有本方兵(卒)少于五个时,仕(士)相(象)才能升变成兵(卒)。
-
- 为验证新规则起到的作用,象棋百科全书网进行了电脑模拟仕相升变成兵的测试比赛:
- http://www.xqbase.com/live/promotion_test/
- 在20局测试比赛中,有4局(第13、15、18、20局)因为升变而使原本和局的棋分出了胜负。
- 为使更广泛地推广新规则,象棋百科全书网计划展开仕相升变成兵规则的电脑象棋联赛测试赛,并寻求各UCCI引擎设计师的支持和积极参加。
-
- 象棋巫师、UCCI引擎联赛模拟器以及UCCI引擎示范程序ElephantEye已经为升变规则作了充分的准备,并使UCCI引擎协议扩充以支持仕相升变成兵的规则的选项(参阅《中国象棋通用引擎协议(UCCI协议)》)。上述三个程序和UCCI引擎协议的改进经验表明,改进UCCI引擎以支持仕相升变成兵的规则并不困难,改进要点如下:
- 一、在UCCI引擎解释模块中,增加对“setoption
promotion true/false”语句的识别,象棋巫师和模拟器如使用仕相升变成兵的规则,必然会向引擎发送“setoption
promotion true”的指令。这样就使得同一版本的引擎可以适应不同的规则。
- 二、输出着法时,升变着法的起始格与目标格相同,例如引擎走“仕四变兵”,就输出“bestmove
f0f0”;
- 三、象棋巫师和模拟器将升变着法被定性为吃子着法,所以在向引擎输送局面信息时,不会在“position fen ... moves
...”的着法列表中包含升变着法,所以引擎没有必要识别诸如“f0f0”这样的着法。
- 四、大多数程序的棋盘结构使用棋子数组,并且只给每方兵(卒)预留5个位置,升变时首先检查哪个位置有空位,升变后在该空位上放一个棋子,并将升变的仕(士)或相(象)清空。
- 五、大多数程序的棋盘结构使用BitRank和BitFile技术,升变着法不改变棋盘的任何BitRank和BitFile。
- 六、引擎在修改着法生成器时,可以将升变着法写入吃子的着法生成器中;判断着法合理性的函数也应考虑升变着法。
- 七、由于升变着法肯定无法用来躲避将军和交换子力,所以被将军和静态搜索时可跳过升变着法的生成。
- 八、子力位置价值表需要考虑升变后的兵(卒)在过河前的某些位置的分数,以鼓励兵(卒)尽快过河;另外仕(士)相(象)的潜在价值也应有所提高,特别是没有防守压力时仕(士)相(象)价值不能被过分低估。
- 九、判断和棋时,双方都只剩下仕(士)相(象),不再成为和棋的判断依据。
- 十、支持升变的引擎可以用象棋巫师(3.5+)或UCCI引擎联赛模拟器(3.5+)进行测试,并用以上四个战例中的关键局面来测试升变功能是否正常。
-
- UCCI引擎设计师若有意参加升变规则的测试比赛,可填写《电脑象棋联赛报名表》(http://www.xqbase.com/league/register.doc),注名参赛期号为“升变测试赛”,发送给电脑象棋联赛临召集人。
上一篇 电脑象棋联赛规则
下一篇 电脑象棋联赛报名和UCCI引擎登记办法
返 回 象棋百科全书——电脑象棋联赛