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

  • 2
  • 0
  • 约1.24万字
  • 约 26页
  • 2023-03-30 发布于浙江
  • 举报
五子棋人机博弈实验报告 目 录 一(课程设计目的……………………………………… 2 二(课程设计要求……………………………………… 2 三(课程设计内容……………………………………… 2 四(课程设计思想……………………………………… 2 五(系统实现…………………………………………… 2 设计平台……………………………………… 2 数据结构设计………………………………… 3 程序流程图设计……………………………… 3 主要算法设计………………………………… 4 程序调试及运行结果………………………… 4 六(课程设计总结……………………………………… 5 七(参考资料…………………………………………… 6 八(附录:五子棋博弈算法源代码…………………… 7 1 一( 课程设计目的 通过上学期学习的《人工智能》学科,运用推理技术、搜索方法和决策 规划和博弈树设计五子棋人机博弈系统,以此进一步深化对理论知识技术的 了解,培养学生编程能力以及实践水平。 二(课程设计要求 通过本次课程设计要求学生掌握以下内容: 1.深入了解博弈树和alpha-beta剪枝算法。 2.设计出适合五子棋算法的启发式函数。 3.熟练掌握启发式的搜索方法。 三(课程设计内容 本系统实现的是五子棋博弈算法,运用java语言实现了图形用户界面, 方便用户使用。算法采用了博弈算法和启发式函数进行搜索,人机对弈可自 动判断输赢,结束后可重新开局。 四(课程设计思想 本系统实现的是五子棋博弈算法,为了方便用户的使用,采用的是java图形用户界面技术。为了记录棋盘的每一个下棋点,定义数组array[19][19]。并用shape[16][16][5]记录所有获胜的组合。首先由玩家落子,前两步电脑根据玩家的落子情况在附近随机落子,第三步电脑开始搜索,并根据玩家落子情况对棋盘进行全局搜索(Scan)并排序(Sort),并对每一个落子点进行打分并选择分值最大的点(Evaluate)落子,判断玩家或电脑是否获胜(Judge),一方获胜则结束。 五(系统实现 1.实验平台: myeclipse 8.5 2 2.数据结构设计: (1)int array[19][19]:记录棋盘的每一个下棋点 (2)int max_x:记录最大评估值的横坐标 int max_y:记录最大评估值的纵坐标 int max :记录最大评估值 (3)int shape[16][16][5]:记录所有获胜组合 3.程序流程图设计: 开始 玩家落子 是 玩家是否获胜 电脑对棋盘进行搜索,对每个点 打分,记录最大值及其位置 电脑选择分值最大的点落子 否 电脑是否获胜 是 是否重新开局 是 否 结束 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:电脑的下棋走法,依据玩家当前的落子位置来判断 自己的走子位置。 5.运行结果: (1)人机对弈,黑棋为人操作,白棋为计算机操作,人赢得胜利的页面截图如 下: 4 (2)人机对弈,黑棋为人操作,白棋为计算机操作,计算机赢得胜利的页面截图如下: 六(课程设计总结: 通过小组合作完成五子棋人机博弈系统,自己更透彻的了解 了上学期学习的《人工智能》教授的知识,可谓一大收获;同时 更强化了Visual C++的一些基本技术,捡回了选修课讲过的很多 相关知识,可谓是另一大收获。在对五子棋人机博弈的估值搜索 算法的设计上,采用博弈搜索的方法,采用静态估值函数对各节 点的代价进行估计,使算法达到最优。小组合作区别与自己独立 实验,此一形式,让我们扬长避短,体味到了团队合作的快乐~ 5 七(参考资料: [1] 蔡自兴(人工智能及其应用[M](北京:清华大学出版社,1999 [2] 王小春(游戏编程(人机博弈)[M](重庆:重庆大学出版社,2002 [3] 潘金贵,顾铁成,曾俭等编译(现代计算机常用数据结构和算法[M](南京:南京大学 出版社,1994 [4] 王永庆(人工智能原理与方法[M](西安:西安交通大学出版社,1998 [5] 林尧瑞,马少平(人工智能导论[M](北京:

文档评论(0)

1亿VIP精品文档

相关文档