一字棋游戏设计-极大极小搜索

本文介绍了使用极大极小搜索算法设计一字棋游戏AI的过程,结合α-β剪枝优化搜索效率。通过实验对比,展示了无剪枝、α-β剪枝和进化算法在游戏搜索中的效果,指出在小规模棋盘中剪枝效果不明显,但对大规模棋盘优化至关重要。
摘要由CSDN通过智能技术生成

1.     问题定义

一字棋游戏,包括两个选手。用户可以在一个3*3的棋盘上任意的选择空闲的位置拜访棋子,最早在水平方向上,或者垂直方向上或者对角线方向上形成三子一线者获胜。棋盘如图1所示。这里我们实现的是用户和计算机进行对弈。本程序要实现的是让计算机可以自动的根据当前棋局计算下一步对自己最有利的走步,尽可能的朝着可以让计算机获胜的方向走步。需要采用极大极小搜索算法。

图1.一字棋棋盘

2.     技术现状

目前一字棋作为各个高校的人工智能教学的典型范例,在技术方面一般都采用极大极小搜索算法,理论层面比较成熟,有很多资料可以参考。大部分教学资料的一字棋都采用C++语言编写,因为本人对C++语言不是很熟悉,更不熟悉C++语言的界面操作,所以在这里的所有实现都通过C#来实现。在刘峡壁老师编著的《人工智能导论——方法与系统》[1]一书中,对一字棋算法的极大极小搜索有着比较详细的介绍,本系统的实现,主要参照了刘峡壁老师一书中对一字棋算法的介绍。

3.     本文采用方法

3.1  极大极小搜索

在本博弈算法中,采用极大极小搜索[2]方法搜索计算机的下一步走步方法,每一次走步的时候以计算机当前所面对的棋局状态作为根顶点,生成一棵有限深度的博弈子树,然后从该博弈子树的叶结点向上回溯,确定在根顶点处的当前最好的策略,找到一条当前最好行动的边。在生成博弈子树的过程中,计算机己方对应的走步状态的节点称为MAX节点,对应的对手走步的节点成为MIN节点。

设计的棋

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值