一般来说,象棋划分成开局、中盘、残局三个阶段,在制作电脑象棋时,这三个阶段的演算法也会不同,开局阶段大多以资料库储存开局棋谱,下棋时就由资料库查询得知下一手,当然啦,棋局不可能储存无限多,当局势发展超出资料库范围,就进入了中盘。如果不要求棋力很高,或是初次制作电脑象棋,中盘和残局可以不用细分,用同样的算法就行了,一般来说程序中一定会有个审局函数和一个对局树,这也是这篇文章的重点,当进入残局阶段,因为象棋的残局有许多特例,通常电脑象棋会特别为这些特例建立一个残局资料库和特殊的算法,这里先不讨论。
审局函数
评估盘面形势
审局函数是作用在于评估盘面的敌我形势,玩过象棋大师2的人就会知道,在对奕中画面会有个数字随盘势而变化,那就是审局函数算出来的值,电脑透过这个值可以判断目前的局势。审局函数判断棋力的依据,主要根据下列三项:
子力