人工智能实验二-博弈树井字棋-实验报告_第1页
人工智能实验二-博弈树井字棋-实验报告_第2页
人工智能实验二-博弈树井字棋-实验报告_第3页
人工智能实验二-博弈树井字棋-实验报告_第4页
人工智能实验二-博弈树井字棋-实验报告_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6/6人工智能实验二博弈树井字棋实验报告姓名:舒吉克班级:545007学号:1000000000目录一、 实验环境 2二、 实验目的 2三、 实验内容 2四、 实验步骤 2(1) 博弈树搜索算法 2(2) 估价函数 2(3) 数据结构 2五、 实验结果 2实验环境操作系统:WIN7编译环境:Codeblocks13.12语言:C++实验目的用博弈树算法实现井字棋游戏。实验内容用博弈树算法实现井字棋游戏。井字棋游戏是一种简单的棋类游戏,在3*3的棋盘上,两人轮流下子,谁的棋子先连成3颗一条直线,谁就赢了,可以横着、竖着、斜着。博弈树算法是用搜索来解决这类问题的算法,井字棋游戏步数较少,很容易用博弈树算法实现AI。实验步骤博弈树搜索算法博弈树搜索算法是搜索算法的一种,用深搜来遍历所有的下子情况,利用一种叫做MIN-MAX的策略,就是对每种棋盘情况有一个估价函数,对A方有利就是正数,对B方有利就是负数。A方行动时,必然走使棋盘的估价函数最大的那一步,也就是MAX;而B方行动时,必然走使估价函数变得最小,也就是MIN的一步。博弈树搜索时,会假设双方都足够聪明,每次都先试着走完所有的可能,然后让当前行动人走对自己最有利的那一步。最后,得到AI当前所需走的这一步到底走哪步,让AI走出这一步。估价函数估价函数是博弈树算法重要的一部分。我设计的估价函数,是某一方已经连三了(也就是已经胜利了),就直接返回1000或-1000。若在某一行、某一列、某一斜线(一共有三行、三列、两条斜线),每有两个A方的棋和一个空格,则估价+50,每有一个A方的棋和两个空格,则估价+10;B方的也类似。这样,就能把双方的胜负、优劣势情况用估价函数表示出来。数据结构没有用太复杂的数据结构,用结构体中的3*3数组存储棋盘,用vector来存储某一情况电脑可以走的各种选择,这样电脑能在有多种估价函数相同的选择的时候能随机从中选一个。实验结果测试的结果:程序无论先后手都根本不会输,玩家有失误的话它能赢。运行截图:1.开始可以选择先后手:2.我按了0,选择了先手。电脑在对局途中都会说出我设定好的语句,来表明它用博弈树算法得到的对局势的分析。如我下在了中间的1,1位置,电脑用博弈树算法,可以得知走四个角才不会输,走其他的四个点必输,所以如下图进行了判断,然后随便选了一个角下棋。3.我第三手下载了左边中间的1,0位置,电脑能判断出它不堵我我就赢了(出了1,2之外的位置的估价数值都为1000,也就是玩家会获胜,所以它只有走1,2,才能避免必输的情况)。4.我下错了一步棋,电脑能通过博弈树算法得知它走这一步他就赢了,然后他赢了。之后可以选择重新开始或者退出。6.玩家选择后手的话,AI会判断出它先手走哪步其实都不是必赢,假设玩家足够聪明(这也是博弈树算法的一部分,会假设双方足够聪明,每步都走最好的位置),AI先手走哪个位置其实都是一样的。7.玩家后手走一般要走中间,而我选择下了一个无关的角,这是必输的走法,电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论