五子棋算法总结

本文分析了五子棋人机对战中的AI算法。通过为不同的棋局状态赋予权重,如五子、活四等,并结合攻防策略,评估最佳落子位置。此外,还讨论了针对不同对手的策略及获胜条件的计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了这么多篇关于五子棋人机对战算法分析,在这里做一个总结:


总的来说,都是先给每种棋局状态赋予一个权重:

1.五子:100

2.活四:80

3.活三 : 70

4.冲四 : 60

5.死三: 50

6.活二  : 40

7.死二 :30

8. 单子 :0

再枚举每个空格在机器落子和人落子所造成的棋局状态所获权值的分别大小,来决定是攻还是守!


1.  只预测当前步骤好坏的一个比较优的方法

高级AI 思索:将每个位置进行分析,假设AI落子在该位置,用以上打分规则为AI打分,并将得到的分数加一。

然后,假设玩家落子在该点,为玩家打分,然后将所有的分值汇总。取最高分作为这个位置的估分,

接下来就是取分数最高的位置下棋了。“位置估分”,下棋的时候,既可以考虑到自己攻击对手,

又能考虑到对对手的防御,可以说,很多时候可以顶上考虑两步的AI


2.将对手分为:是否可预测必须跟着我方走,如果可预测(即活四,双三,活三),那么我只用简单的枚举那种走法更好,

如果不能,那就判定是攻还是守了,可用上面的那种方法


3.先将所有的获胜情况找出来,假如是10*10的矩阵,那么就用192中获胜的方法,dp[10][10][192]来记录还差多少颗子才能填满这5颗;

遍历该位置所在的每一种获胜组合,根据这个组合中已经拥有的己方棋子数1到4分别加不同分数,

最后将这些所有的获胜组合所得出的分数相加就是该位置的分数


有禁手的做法:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值