五子棋的米字关联策略

    这个算法很简单!如图所示:棋盘上某一点的关联区域

 

由于五子棋游戏中,只要在横,竖和斜三个方向上有连续的五个棋子即为胜利。故对一个棋子而言,其能与其它棋子相连接的区域即为上图的字型区域。而算法的核心即为在棋盘上寻找能够最大程度地实现已方棋子的连接而破坏敌方棋子的连接的下棋点。在本设计中,是以关联权值的大小作为基本判断依据的。所谓关联权值即为在某一点的四个方向(横,竖,撇和捺)所能关联的棋子数的最大值的立方。如图所示,2代表已方棋子,3代表敌方棋子: 

 

在横方向上,能关联到的棋子数为零,因为已方棋子被敌方棋子阻挡了;

在竖方向上,能关联到的棋子数为1,因为只有一个乙方棋子而其它为空白;

在撇方向上,能关联到的棋子数为2

在捺方向上,能关联到的棋子数为3

所能关联的棋子数的最大值为3,中心点的关联权值为3×3×3=27

在本设计中,为每个电脑玩家设置了两个关联权值棋盘,一个显示己方棋子的关联权值分布,另一个则显示敌方的权值分布。在进行最终决策时,将两个权值分布做简单相加,取得最大值的点坐标的集合,从坐标集合中任意选择一个点做为最佳下棋点。此类关联矩阵的一个特殊之处在于不需要每次对棋盘上的所有点的权值进行更新,在每次下棋后,只对落子点的关联区域的所有点进行关联权值的计算即可。 

原文地址:https://www.cnblogs.com/siegfang/p/2609390.html