案例二十三 人机下棋问题.ppt_第1页
案例二十三 人机下棋问题.ppt_第2页
案例二十三 人机下棋问题.ppt_第3页
案例二十三 人机下棋问题.ppt_第4页
案例二十三 人机下棋问题.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、第1页 共28页,案例二十三 人机下棋问题,本案例知识要点 数组的使用 类的设计及使用 人工智能问题的量化思想,第2页 共28页,一、案例需求,案例描述 设计一个简单的下棋游戏,游戏的规则是:在33的棋盘上,计算机为一方,人为一方,交替标记叉(X)和圆圈(O)。在行、列、对角线的方向上,先连成一条直线的一方为胜者。计算机可以动态地显示棋盘,给出提示信息和胜负判断,并允许用户选择是先手还是后手。 案例效果图 人机下棋案例效果如图所示。,第3页 共28页,人机下棋案例效果图,第4页 共28页,功能说明 显示棋盘,给出提示信息和胜负结果判断标准,允许用户选择是先手还是后手。 每一步都用图形化方式顺序

2、输出。 直观地表示胜负结果。,第5页 共28页,二、案例分析,设计算机标记“X”,人标记“O”。计算机下时,应该考虑所有的空位置,并按照行、列和对角线计算每个空位的分值。在某行(列、对角线)上,按以下规则计分(其中“_”表示空格): 若已有“XX”,则加50分。 若已有“OO”,则加25分。 若已有“X_”,则加10分。 若已有“O_”,则加8分。 若已有“_ _”,则加4分。,第6页 共28页,根据上述的计分规则,计算机每次下棋时算出每个空位置的分数,从中选择最高分的位置画X。如果某条行、列、对角线上画满了3个“X”,则计算机胜,否则人继续下棋。 人每走一步即判断行、列、对角线上是否画满了3

3、个“O”,如画满了3个“O”,则人胜,否则计算机继续下棋。 如果棋盘布满了棋也未分出胜负,则和棋。 需要定义一个字符数组保存棋盘每次下完棋的状态。其中,“X”表示计算机下的棋,“O”表示人下的棋,数字“1”“9”表示空位置。 还需要定义一个整型数组记录计算机下棋时每个空位置的分值。即如上所述的50、25、10、8、4分。,第7页 共28页,三、案例设计,1类的设计 基于上述分析,本案例定义一个类CGame,用来处理相关的计算、打印等功能。主程序只是简单调用。,第8页 共28页,CGame类的设计如图所示。,第9页 共28页,(1)数据成员 char status9; 记录棋盘状态。 int s

4、core9; 记录空位置的分值。 int fail; fail为胜败标志,其中0表示和棋,1表示人赢,2 表示计算机赢。 counter; counter为步数。,第10页 共28页,(2)函数成员 Game(); 构造函数,初始化相关变量。 Print(); 打印棋盘。 int Cal(int i,int j); 计算某行的得分。 bool Judge(int i,int j,int k); 判断某条直线是否全为“O”。 Play(); 启动游戏运行。,第11页 共28页,2主程序设计 主程序主要是调用了CGame类的成员函数Play()来实现游戏的,CGame.Play()函数的流程如图所

5、示。,第12页 共28页,CGame.Play()函数的流程,第13页 共28页,四、案例实现,第14页 共28页,第15页 共28页,第16页 共28页,第17页 共28页,第18页 共28页,第19页 共28页,第20页 共28页,第21页 共28页,第22页 共28页,第23页 共28页,第24页 共28页,第25页 共28页,第26页 共28页,第27页 共28页,五、案例总结与提高,案例总结 该案例新颖的地方是巧妙地将智能判断的思考过程抽象出来,加以量化,这样计算机才能够进行处理。关于这种智能过程,读者可以参考人工智能方面的书籍。,第28页 共28页,案例提高 在全面理解的基础上,读者可以对本案例进行一些改动与提高。 改变棋盘的尺寸。改变后,计算机下棋时能够选择的空位置就更加多了。可以通过改进算法来达到计算机选择最优位置的目的。 改变下棋的规则。当棋盘变大时,胜利的规

温馨提示

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

评论

0/150

提交评论