- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
辅助文档_空棋位算法
目录
1 引言 1
1.1 五子棋介绍 1
1.2 开发背景 1
1.3 开发环境及运行环境 1
1.3.1 开发环境 1
1.3.2 运行环境 1
2 软件架构 2
2.1 棋盘类 2
2.2 游戏模式类 2
3 棋盘类——CTable 4
3.1 主要成员变量说明 4
3.1.1 棋盘等待标志——m_bWait 4
3.1.2 棋盘数据——m_data 4
3.2 主要成员函数说明 4
3.2.1 清空棋盘——Clear 4
3.2.2 绘制棋子——Draw 4
3.2.3 左键消息——OnLButtonUp 5
3.2.4 绘制棋盘——OnPaint 5
3.2.5 对方落子完毕——Over 5
3.2.6 设置游戏模式——SetGameMode 5
3.2.7 胜负的判断——Win 6
4 游戏模式类——CGame 7
4.1 主要成员变量说明 7
4.1.1 棋盘指针——m_pTable 7
4.1.2 落子步骤——m_StepList 8
4.2 主要成员函数说明 8
4.2.1 初始化操作——Init 8
4.2.2 发送自己落子消息 —— SentStep 8
4.2.3 胜利后的处理——Win 8
5 主要算法 9
5.1 判断胜负 9
5.2 人机对弈算法 11
5.2.1 获胜组合 11
5.2.2 落子后处理 12
5.2.3 查找棋盘空位 13
5.2.4 落子打分 13
5.2.5 防守策略 15
5.2.6 选取最佳落子 17
6 几点补充说明 18
五子棋——空棋位打分算法
1 引言
1.1 五子棋介绍
五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“連珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。
五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。
1.2 开发背景
当前网络上流传的五子棋游戏功能并不尽善尽美,其中最主要的问题就是人机对战和网络对战不能够一起实现,所以决定开发[1]一个既能够人机对战,又能够进行网络对战的五子棋系统。
1.3 开发环境及运行环境
1.3.1 开发环境
Intel? Pentium? 4 2.0GHz,512M内存,80G硬盘
Microsoft? Windows? 2000 Professional
Microsoft? Visual C++ 6.0
Microsoft? Developer Network for Visual Studio.NET 2003
Visual Assist X 10.1.1301.0
1.3.2 运行环境
Intel? Pentium? 2及以上处理器,32M以上内存,4G以上硬盘
Microsoft? Windows? 9X/NT操作系统
800*600或以上的屏幕分辨率
2 软件架构
软件的总体架构如图2.1:
图2.1 软件架构
考虑到整个的下棋过程(无论对方是电脑抑或其他网络玩家)可以分为:己方落子、等待对方落子、对方落子、设置己方棋盘数据这一系列过程,因此一人游戏类、二人游戏类和棋盘类之间的关系参考了AbstractFactory(抽象工厂)模式,以实现对两个不同模块进行一般化的控制。[2]
2.1 棋盘类
整个架构的核心部分,类名为CTable。封装了棋盘的各种可能用到的功能[3],如保存棋盘数据、初始化、判断胜负等。用户操作主界面,主界面与CTable进行交互来完成对游戏的操作。
2.2 游戏模式类
用来管理人机对弈/网络对弈两种游戏模式,类名为CGame。CGame是一个抽象类,经由它派生出一人游戏类COneGame和网络游戏类CTwoGame,如图2.2:
图2.2 CGame类派生关系
这样,CTable类就可以通过一个CGame类的指针[4],在游戏初始化的时候根据具体游戏模式的要求实例化COneGame或CTwoGame类的对象;然后利用多态性[5],使用CGame类提供的公有接口就可以完成不同游戏模式下的不同功能了。
3 棋盘类——CTable
3.1 主要成员变量说明
3.1.1 棋盘等待标志——m_bWait
由于在玩家落子后需要等待对方落子,m_bWait标志就用来标识棋盘的等待状态。当m_bWa
您可能关注的文档
- 使用duplicatedatabase创建物理standbydatabase.doc
- 第11讲:linux.ppt
- 发展心理学考核要点.doc
- 鸟类的起源早于其他有脊椎动物的生物链证据.doc
- 广州英语五年级上Module1复习.doc
- IT最应该读得11本书.doc
- 2011中考英语分类汇编之动词时态.doc
- 南京理工大学《电力电子技术》习题集.doc
- 单片机编程作业.doc
- 京沪高铁试验人员考核办法.doc
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
文档评论(0)