- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Java的子棋人工智能系统的设计研究
基于Java的六子棋人工智能系统的设计研究
邱烨,杨旭,王伟
中国矿业大学计算机科学与技术学院,徐州(221008)
摘 要:六子棋作为一个刚刚兴起不久的棋类游戏,其计算机博弈算法的研究还相对较少。六子棋是复杂度很高的棋类游戏,研究它是很有挑战的一件事。本系统就是对六子棋计算机博弈技术的一次尝试。本系统主要完成了人人对战和人机对战。系统主要通过对当前局面的所有棋型进行静态估值,然后再采用了优化的Alpha-Bate搜索技术来实现AI。最后,本文探讨了一些提高电脑智能的方法。相信随着科技的发展,人工智能对人们的帮助将会越来越明显,越来越大。
关键词:计算机博弈;六子棋; Java; Alpha-Bate搜索技术; 人工智能
中图分类号:TP311
引 言
人工智能(Artificial Intelligence),其英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学[1]。人工智能作为计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。
而计算机博弈则被认为是人工智能领域最具挑战性的研究方向之一,它涉及人工智能中的推理技术、搜索方法和决策规划等,它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响以及大量的研究成果。而代表计算机博弈技术的各种棋类游戏在其各自的计算机博弈技术研究中已经取得了相当丰硕的成果,且其计算机博弈系统也日趋完善,基本上能达到大师级水平,比如“深蓝”。六子棋作为最近几年才兴起的棋类游戏,对其计算机博弈技术和算法的研究相对较少。六子棋的发明者台湾吴毅成教授给出了六子棋的公平性问题以及基于迫着(Threats)的胜利策略,但是对于其计算机博弈问题没有给出更加深刻的阐述,同时也没有全面解决六子棋计算机博弈问题。最近几年,国际上也有与智能六子棋的设计与实现相关的大赛举办,由此可见对该问题的研究是相当热门和紧迫的。因此,基于Java的智能六子棋系统的实现将是对六子棋博弈问题的一次探索。
系统总体设计
2.1系统设计目标
本系统开发的总体任务是实现具有一定棋力的六子棋程序,其能够与一般的六子棋爱好者对弈。当然,也要能实现人人对弈。
图1 结构模型
图2 系统流程图
2.2开发设计思想
(1)该系统的实现主要是对六子棋的数据结构,棋子触发,搜索算法[2],评估函数等进行设计和实现的过程。
(2)界面操作应当简单化,做到实用、方便,以满足不同层次使用者的需要。
(3)系统总体实现以下规范:删除不必要的冗余,实现程序代码标准化,软件统一化,确保软件的可扩展性,可维护性和实用性。
主要技术实现
3.1界面设计及事件响应
本系统界面包括棋盘部分,用户面板部分,游戏信息及选项部分,当前状态部分和系统选项部分。其中为了实现的方便,棋盘背景和棋盘触发面板是分开设计的,即在主框架中添加了背景,并放置了用户面板部分(游戏信息及游戏选项部分),当前状态部分和系统选项部分,然后另外单独设计了棋盘触发面板覆盖于棋盘背景之上。也许你会问怎么没有棋子信息的部分呢?其实,棋子信息部分就隐藏在了棋盘触发面板里了。同时,为了方便触发,当前状态部分,系统选项部分和游戏选项部分是直接嵌入到了主框架中的[3]。下面是具体的各个类:
ChessFrame //主框架类,直接实现了棋盘背景,当前状态,系统选项和游戏选项
ChessJPanel //棋盘触发面板类
GameJPanel //游戏信息类,用于显示游戏信息
PlayerJPanel //用户面板类,用于用户信息显示及选择
ChessShow //棋子信息类,用于棋子的显示,其嵌入到了类ChessJPanel中
当前状态部分系统选项部分
当前状态部分
系统选项部分
游戏信息及游
戏选项部分
对于事件的处理,本系统主要处理单击事件和鼠标点击事件,并设立线程监视按钮的可用情况(如在开始游戏之前是不能悔棋的,在游戏开始后但没有悔棋
前是不能重下的等等)以及是否该电脑走棋,游戏一方是否胜利等。对于游戏是否胜利,为了防止局面评估的不完善造成结果的失常,系统中还单独设立了检查函数checkBlackWin()和checkWhiteWin()。
下面是checkBlackWin()的算法:
(1)得到当前下的棋子的坐标P(x,y),因为下一子即连成六子,故设为下一子检测一次;
您可能关注的文档
最近下载
- 最新石灰生产危险源辨识、风险分析资料.docx VIP
- 船体装配工培训.pptx
- 新版人教版七年级英语上册书面表达及范文.pptx
- 2023-2024学年山东省潍坊市九年级(上)期末物理试卷.docx
- 广东省广州市增城区2022-2023学年九年级上学期期末英语试题(答案).docx VIP
- 《审计基础》课程标准.pdf
- 2024-2025学年度南京市鼓楼区三年级语文第一学期期末真题模拟检测.docx
- 餐饮服务员岗位培训.pptx
- 寒假放假安全教育主题班会PPT.pptx VIP
- 沪教版(2024)七年级上册Unit 1 Friendship 语法 Grammar 特殊疑问句(含解析).docx VIP
文档评论(0)