【源码+文档】基于 alpha-beta 剪枝技术的五子棋

本文介绍了如何使用alpha-beta剪枝技术实现五子棋的人机对弈。在双人对弈模式中,程序只需判断胜负。在人机对弈模式下,AI采用MAXMIN算法寻找最佳落子位置。此外,还设定了残局闯关模式增加游戏趣味性。源码和文档可在指定空间获取。
摘要由CSDN通过智能技术生成

问题描述

我们的五子棋博弈实现的是双人的、完备信息的五子棋问题,即游戏规则为双方严格的轮流走步,且任何一方能完全知道对方已走过的步和以后可以走的所有步,当某方有在一条直线上连续的五子时,游戏结束。游戏模式可以分为人机对弈和双人对弈两种模式。双人对弈模式比较容易实现,程序只需要判断是否产生胜利者即可。人机对弈模式则需要我们的程序代码实现机器落子的位置的选择确定,本程序采用基于启发式 MAX/MIN 算法的 alpha-beta 剪枝技术来选择出最佳的机器落子位置。除此之外,我们还设置了残局闯关模式,在增加了游戏趣味性的同时给用户们带来了更好的游戏体验。

算法概述

我们的系统分为人机对弈与人人对弈。黑子白子双方轮流落子,当某一方完成落子后调用判断胜负的函数盘算是否结束游戏。若游戏结束,跳出某方胜利的弹窗,点击确定清空棋盘。

对于人机对弈我们设计了 AI 算法—基于 MAXMIN 的 α-β 剪枝算法,它对 AI 的走步给出最好的决策。算法思想是:首先,判断当前的深度是否是为 0,如果为 0 则结束回溯到上一层;若不为 0,则利用估值函数计算当前棋盘的得分,若当前棋盘的得分大于等于 9999 且递归深度小于最大深度 maxdepth(设定的值为 3)时,表示该走步最佳,AI 可胜利并返回这个最佳分数;若不满足则产生新的走法,将所有所有的没有棋子的位置都初步列为 AI 可落子的位置,枚举所有的走法:假设 AI 落子在该位置时,进入 MIN 层,分析人类会走的步,深度减一,递归调用分析得出人类最不利于 AI 的走步时以及棋盘的得分,若当前的得分大于 alpha,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值