五子棋人机博弈实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
五子棋人机博弈实验报告

目 录 一.课程设计目的……………………………………… 2 二.课程设计要求……………………………………… 2 三.课程设计内容……………………………………… 2 四.课程设计思想……………………………………… 2 五.系统实现…………………………………………… 2 设计平台……………………………………… 2 数据结构设计………………………………… 3 程序流程图设计……………………………… 3 主要算法设计………………………………… 4 程序调试及运行结果………………………… 4 六.课程设计总结……………………………………… 5 七.参考资料…………………………………………… 6 八.附录:五子棋博弈算法源代码…………………… 7 课程设计目的 通过上学期学习的《人工智能》学科,运用推理技术、搜索方法和决策规划和博弈树设计五子棋人机博弈系统,以此进一步深化对理论知识技术的了解,培养学生编程能力以及实践水平。 二.课程设计要求 通过本次课程设计要求学生掌握以下内容: 1.深入了解博弈树和alpha-beta剪枝算法。 2.设计出适合五子棋算法的启发式函数。 3.熟练掌握启发式的搜索方法。 三.课程设计内容 本系统实现的是五子棋博弈算法,运用java语言实现了图形用户界面,方便用户使用。算法采用了博弈算法和启发式函数进行搜索,人机对弈可自动判断输赢,结束后可重新开局。 四.课程设计思想 本系统实现的是五子棋博弈算法,为了方便用户的使用,采用的是java图形用户界面技术。为了记录棋盘的每一个下棋点,定义数组array[19][19]。并用shape[16][16][5]记录所有获胜的组合。首先由玩家落子,前两步电脑根据玩家的落子情况在附近随机落子,第三步电脑开始搜索,并根据玩家落子情况对棋盘进行全局搜索(Scan)并排序(Sort),并对每一个落子点进行打分并选择分值最大的点(Evaluate)落子,判断玩家或电脑是否获胜(Judge),一方获胜则结束。 五.系统实现 1.实验平台: myeclipse 8.5 2.数据结构设计: (1)int array[19][19]:记录棋盘的每一个下棋点 (2)int max_x:记录最大评估值的横坐标 int max_y:记录最大评估值的纵坐标 int max :记录最大评估值 (3)int shape[16][16][5]:记录所有获胜组合 3.程序流程图设计: 4.主要算法设计: (1)class ChessPad:绘制棋盘棋子,初始化棋盘,添加鼠标点击事件。 (2)class ChessPoint_black:黑棋下棋的走法和显示 (3)class ChessPoint_white:白棋下棋的走法和显示 (4)class Chess:棋盘属性的设置 (5)class Evaluate:对每一步可选择的方法进行打分,选择最大值,记录坐标。 (6)class Scan:查看八个方向上相邻相同颜色棋子的个数。 (7)class Judge:判断是否有一方获得胜利。 (8)class AutoPlay:电脑的下棋走法,依据玩家当前的落子位置来判断自己的走子位置M].北京:,M].重庆:,M].南京:南京大学出版社,1994 王永庆.人工智能原理与方法[M].西安:西安交通大学出版社,1998 林尧瑞,马少平.人工智能导论[M].北京:清华出版社,1989 田盛丰,黄厚宽.人工智能与知识工程[M].北京:中国铁道出版社,1999 王镌.博弈树搜索的算法改进[J].福建电脑.2004,(2) [8] Visual C++游戏设计入门. 机械工业出版社 普悠玛数科技 著 [9] 标准C++实用教程. 电子工业出版社 康晓明 汪涛 等编著 [10]C++面向对象程序设计——陈维兴 林小茶编著 中国铁道出版社 [11]五子棋必读 作者:彭建国编 import java.awt.*; import java.awt.event.*; class ChessPad extends Panel implements MouseListener,ActionListener{ int array[][]=new int[19][19]; Scan scanp=new Scan(); Scan scanc=new Scan(); AutoPlay autoPlay=new AutoPlay(); Evaluate evaluatep=new Evaluate(); Evaluate evaluatec=new Evaluate(); Sort sort=new Sort(); int i=0

文档评论(0)

tianma2015 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档