- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 《膝关节前后交叉韧带损伤》课件.ppt VIP
- 产钳和胎头吸引助产课件.pptx VIP
- 前交叉韧带损伤学习课件.pptx VIP
- GeForce GTX 1070Ti显卡电路图纸参考 PG411 Rev A00.pdf VIP
- 2025-2026学年小学美术五年级上册人美版·北京(主编杨力)(2024)教学设计合集.docx
- 学堂在线 生活英语进阶 章节测试答案.docx VIP
- 一汽-奔腾B50-产品使用说明书-奔腾B50 2014款1.6MT伙伴-CA7165MT4-B50伙伴用户手册.pdf VIP
- 八年级数学下册重难点压轴题突破专项(苏科版)06平行四边形(五大题型,45题)含答案与解析.pdf
- 角膜地形图与圆锥角膜.ppt VIP
- 2025四川内江市总工会招聘工会社会工作者14人笔试备考题库及答案解析.docx VIP
文档评论(0)