人工智能作业-五子棋AI算法的改进方法

人工智能作业-五子棋AI算法的改进方法

ID:5184540

大小:156.69 KB

页数:13页

时间:2017-12-05

人工智能作业-五子棋AI算法的改进方法_第1页
人工智能作业-五子棋AI算法的改进方法_第2页
人工智能作业-五子棋AI算法的改进方法_第3页
人工智能作业-五子棋AI算法的改进方法_第4页
人工智能作业-五子棋AI算法的改进方法_第5页
资源描述:

《人工智能作业-五子棋AI算法的改进方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、人工智能作业制作拥有强大AI五子棋的过程分为十四步,让我来步步介绍。第一步,了解禁手规则做一个五子棋的程序,自然对五子棋需要有足够的了解,现在默认大家现在和我研究五子棋之前了解是一样多的。以这个为基础,介绍多数人不大熟悉的方面。五子棋的规则实际上有两种:有禁手和无禁手。由于无禁手的规则比较简单,因此被更多人所接受。其实,对于专业下五子棋的人来说,有禁手才是规则。所以,这里先对“有禁手”进行一下简单介绍:五子棋中“先手必胜”已经得到了论证,类似“花月定式”和“浦月定式”,很多先手必胜下法虽然需要大量的

2、记忆,但高手确能做到必胜。所以五子棋的规则进行了优化,得到了“有禁手”五子棋。五子棋中,黑棋必然先行。因此“有禁手”五子棋竞技中对黑棋有以下“禁手”限制:“三三禁”:黑棋下子位置同时形成两个以上的三;“四四禁”:黑棋下子位置同时形成两个以上的四;“长连禁”:六子以上的黑棋连成一线。黑棋如下出“禁手“则马上输掉棋局。不过如果“连五”与“禁手”同时出现这时“禁手”是无效的。所以对于黑棋只有冲四活三(后面会有解释)是无解局面。反观白棋则多了一种获胜方式,那就是逼迫黑棋必定要下在禁点。为了迎合所有玩家,五子

3、棋自然需要做出两个版本,或者是可以进行禁手上的控制。 第二步,实现游戏界面这里,我制作了一个简单的界面,但是,对于人机对弈来说,绝对够用。和很多网上的精美界面相比,我的界面也许略显粗糙,但,开发速度较高,仅用了不到半天时间。下面我们简单看下界面的做法。界面我采用了WPF,表现层和逻辑层完全分开,前台基本可以通过拖拽完成布局,这里就不做过多介绍。根据界面截图简单介绍窗体顶端1处实际上市两个渐变Label的拼接,2、3是两个label,4、5实际上是两个Button,但是没有做事件响应。通过按钮6、7、

4、8、9的控制,修改label和Button的Content属性。也许有人会奇怪,为什么Button会丝毫看出不出有Button的影子,这里战友whrxiao写过一个Style如下

5、orizontalAlignment="{TemplateBindingHorizontalContentAlignment}"VerticalAlignment="{TemplateBindingVerticalContentAlignment}"SnapsToDevicePixels="{TemplateBindingSnapsToDevicePixels}"RecognizesAccessKey="True"/><

6、/Setter>这里我们把这个Style称为Style1。界面逻辑上,将是否开始、是否禁手和是否电脑先行作为两个全局变量的布尔型值,通过设置和判断bool型值进行逻辑上的控制。中间的棋盘是个canvas,一个15*15的Grid放满Button并将每个Button应用Style1开始时候透明度设为0,也就是根本看不到,在下棋的时候改变Button的背景和透明度,实现落子的效果,因为Grid的位置关系,所以可看起来好像是下在横竖的交线处。 第三步,进行输赢判断:因为规则不同,“无禁手”

7、和“有禁手”的输赢判断自然不同。先看无禁手:这个比较简单,遍历每个位置,然后从这个位置开始,分别判断它的四个方向:即横、竖、左上到右下、左下到右上。每个方向从中间点开始,往两边数连子数,然后将两个方向的连字数加和再加一(中间的棋子)。如果得到大于等于5,那么就说明下子方赢棋。对于有禁手的五子棋,输赢判断还需要判断禁手,禁手的判定较为复杂。将待判断点放入黑棋子。然后搜索待判断点周边棋盘;还原棋盘;利用搜索结果依次对各方向进行分析,判断黑棋放入后所产生的棋型是否形成长连或形成某种四连或三连的的棋型。若形

8、成长连,判定为禁手,返回长连禁手标识。若形成某种四连或三连的棋型,该棋型统计数加1,再对下一个方向进行判断,直到各个方向分析结束。若四连棋型或三连棋型的统计数大于1,则返回为禁手。其余情况返回非禁手。 第四步:构造棋型估分“有禁手”规则比较复杂,涉及到比较多下棋方面的技巧,而且对算法的思路没有丝毫影响,所以下面我们主要考虑无禁手规则下的AI设计。若设计好无禁手AI,只需要让AI执黑时坚决不下到禁手点,就可以很快构造有禁手的AI。虽然这种方式没有利用有禁手规则下的技巧,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。