五子棋AI算法的改进方法.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
五子棋AI算法的改进方法--第1页 又是本人一份人工智能作业……首先道歉,从Word 贴到Livewrter,好多格式没了,也没做代码高亮…… 大家凑活着看……想做个好的人机对弈的五子棋,可 以说需要考虑的问题还是很多的,我们将制作拥有强 大AI五子棋的过程分为十四步,让我来步步介绍。 第一步,了解禁手规则 做一个五子棋的程序,自然对五子棋需要有足够的了解,现在默认大家现在 和我研究五子棋之前了解是一样多的。以这个为基础,介绍多数人不大熟悉的方 面。五子棋的规则实际上有两种:有禁手和无禁手。由于无禁手的规则比较简单, 因此被更多人所接受。其实,对于专业下五子棋的人来说,有禁手才是规则。所 以,这里先对“有禁手”进行一下简单介绍: 五子棋中“先手必胜”已经得到了论证,类似“花月定式”和“浦月定 式”,很多先手必胜下法虽然需要大量的记忆,但高手确能做到必胜。所以五子棋 的规则进行了优化,得到了 “有禁手”五子棋。五子棋中,黑棋必然先行。因此 “有禁手”五子棋竞技中对黑棋有以下“禁手”限制:“三三禁”:黑棋下子位置同 时形成两个以上的三;“四四禁”:黑棋下子位置同时形成两个以上的四;“长连 禁”:六子以上的黑棋连成一线。黑棋如下出“禁手“则马上输掉棋局。不过如果 “连五”与“禁手”同时出现这时“禁手”是无效的。所以对于黑棋只有冲四活三 (后面会有解释)是无解局面。反观白棋则多了一种获胜方式,那就是逼迫黑棋必 定要下在禁点。 为了迎合所有玩家,五子棋自然需要做出两个版本,或者是可以进行禁手上 的控制。 第二步,实现游戏界面 五子棋AI算法的改进方法--第1页 五子棋AI算法的改进方法--第2页 这里,我制作了一个简单的界面,但是,对于人机对弈来说,绝对够用。和 很多网上的精美界面相比,我的界面也许略显粗糙,但,开发速度较高,仅用了不 到半天时间。下面我们简单看下界面的做法。 界面我采用了 WPF,表现层和逻辑层完全分开,前台基本可以通过拖拽完成 布局,这里就不做过多介绍。根据界面截图简单介绍 窗体顶端 1 处实际上市两个渐变 Label 的拼接,2、3 是两个 label,4、5 实际上是两 个 Button,但是没有做事件响应。通过按钮 6、7、8、9 的控制,修改 label 和 Button 的Content 属性。也许有人会奇怪,为什么 Button 会丝毫看出不出有 Button 的影子,这里战友whrxiao 写过一个 Style 如下 Style x:Key=ButtonStyle1 TargetType={x:Type Button} Setter Property=Template Setter.Value ControlTemplate TargetType={x:Type Button} 五子棋AI算法的改进方法--第2页 五子棋AI算法的改进方法--第3页 Grid ContentPresenter HorizontalAlignment={TemplateBinding HorizontalContentAlignment} VerticalAlignment={TemplateBinding VerticalContentAlignment} SnapsToDevicePixels={TemplateBinding SnapsToDevicePixels} RecognizesAccessKey=True/ /Grid /ControlTemplate /Setter.Value /Setter

文档评论(0)

. + 关注
官方认证
内容提供者

专注于职业教育考试,学历提升。

版权声明书
用户编号:8032132030000054
认证主体社旗县清显文具店
IP属地河南
统一社会信用代码/组织机构代码
92411327MA45REK87Q

1亿VIP精品文档

相关文档