当前位置:   article > 正文

五子棋AI算法

五子棋ai

最近写了个五子棋的AI算法,整个算法还是比较简单的,在此记录一下,方便以后忘记的时候回来看看。

棋盘是一个二位数组,然后计算出每一个位置的黑子权重和白子权重,取权重最大的位置就是AI下棋的位置。

因为需求对AI下棋没有过高要求,所以我在此仅做了个简单的实现。

黑子权重:

计算出二维数组每一个未下棋子的点的四个方向(横向/纵向/左斜/右斜)连续(一定要连续)黑子的数量(包括当前点,可以理解为假如在此点下子),所以当前点的权重计算方式为:twoNum * 1 + threeNum * 3 + fourNum * 10 + fiveNum * 100,其中1,3,10,100为我自己设置的各个连续数量分别对应的权重,可以根据自己情况进行更改,由此可计算出各个点的权重。

举例:

如果 arr[5][5]的横向有2个黑子,纵向有2个黑子,左斜有3个黑子,右斜有4个黑子的情况可能是这样:

arr[5][6],arr[4][5],arr[4][4],arr[6][6],arr[7][7],arr[6][4],arr[7][3],arr[8][2]均为黑子,自行脑补。。。。

则arr[5][5]的黑子权重为:2 * 1 + 1 * 3 + 1 * 10 + 0 * 100;

白子权重:

计算方式与黑子一致,取黑子权重和白子权重的最大值的下标,即为AI下子的位置。

还有一些具体细节的处理,如黑子与白子的最大权重相同,如果AI为白子,则下白子权重最大的位置,来达到进攻的效果。其他细节在此不举例,自行考虑。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/336436?site
推荐阅读
相关标签
  

闽ICP备14008679号