辅助文档_空棋位算法.docVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

您可能关注的文档

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档