论对手如何落子,仍然至少有一种方法可以冲四。因此,B?AAA? B中的三个A,不能算是活三;B?AAA??B中的三个A,也不是活三,尽管它有可能成为活四。这样,棋型的估值设计才能比较细致。本文算法对特定棋型的估值如图10所示。
图10 特定棋型的估值
之所以要给出如此大的分值差距,主要是考虑以后的全局判断的时候不会因为分数的累加使得电脑判断错误。而电脑在判断双方的分值的时候,就是在落子时对自己的落子点涉及分值和对方的分值进行对比来进行之后落子的判断。
用两个二维数组(pgrades[,cgrades)存储每个棋位的分数,一个是计算机的,另一个是玩家的,表示该位置对于各方是最佳着法的肯定程度,对一个位置的评分就是:遍历该位置所在的每一种获胜组合,根据这个组合中已经拥有的己方棋子数1到4分别加不同分数,最后将这些所有的获胜组合所得出的分数相加就是该位置的分数,下图是对于五子棋黑方各棋位的评分(其中的1,2,3,4这几个值要根据实际需要来确定)。如图11所示。
图11黑方棋位的评分
5.五子棋算法之胜负判断
棋局的胜负是根据最后一个落子的情况来判断的。此时需要查看四个方向,即以该棋子为出发点的水平,竖直和两条分别为45 度角和135 度角的线,看在这四个方向上的其它棋子是否能和最后落子构成连续五个棋子,如果能的话,则表示这盘棋局已经分出胜负。
实际上,我们可以提前若干步预判当前棋局的胜负情况。可以提高算法的智能
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库五子棋算法(3)在线全文阅读。
相关推荐: