网站大量收购独家精品文档,联系QQ:2885784924

五子棋游戏〔双人对战版〕软件设计.doc

五子棋游戏〔双人对战版〕软件设计.doc

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
五子棋游戏〔双人对战版〕软件设计

2012-2013学年第1学期“软件工程”课程设计报告 学院/系 信息工程学院计算机科学系 专业 计算机科学与技术 班级 项目名称 五子棋游戏(双人对战版)软件设计 组长 小组成员 主要负责完成软件的测试模块 主要负责完成界面设计以及源代码的编写与调试 主要负责完成数据结构设计以及源代码的编写与调试 主要负责完成的功能设计以及源代码的编写与调试 主要负责完成软件的问题描述和算法分析部分以及报告的整合 主要负责完成软件的需求分析模块 目录 第一章 五子棋双人对战版软件问题描述 3 1.1 五子棋的相关介绍 3 1.1.1 五子棋的简介 3 1.1.2 五子棋规则 3 1.2 五子棋双人对战版软件 4 1.2.1 软件设计思想 4 第二章 五子棋双人对战实现的算法分析 4 2.1传统五子棋算法介绍及初步实现 4 2.1.1 估值函数 4 2.1.2 Alpha–Beta 搜索 5 2.1.3 胜负判断 7 2.2 五子棋算法的优化 7 2.2.1 减少搜索范围 7 2.2.2 设置下棋风格 8 2.2.3 增大搜索层数 8 2.2.4 使用置换表 8 2.2.5 启发式搜索 8 第三章 需求分析报告 9 3.1 介绍 9 3.1.1 目的 9 3.1.2 文档约定 9 3.1.3 面向的读者和阅读建议 9 3.1.4 参考文献 10 3.2 整体描述 10 3.2.1 功能需求 10 3.2.2 性能需求 11 3.2.3 数据流图 12 3.3 系统特点 12 3.3.1 系统特点 12 3.3.2 系统功能 12 3.4 外部接口需求 13 3.4.1 用户界面 13 3.4.2 硬件接口 13 3.4.3 软件界面 13 3.5 其他非功能需求 13 3.5.1 系统交付日期 13 3.5.2 系统需求 13 3.6 软件总流程图 14 第四章 设计与实现 15 4.1 基本设计概念和处理流程 15 4.2 结构 15 4.3 功能设计 16 4.3.1 软件的基本功能设计 16 4.3.2 软件的附加功能设计 16 4.4 接口设计 16 4.4.1 用户接口 16 4.4.2 外部接口 17 4.4.3 内部接口 17 4.5 界面设计 17 4.5.1 界面设计运用的主要方法 17 4.6 系统数据结构设计 19 4.6.1 逻辑结构和物理结构设计要点 19 4.6.2 数据结构与程序的关系 21 4.7 系统出错处理设计 22 4.8 软件运行结果 22 第五章 测试 25 5.1 黑盒测试 25 第一章 五子棋双人对战版软件问题描述 1.1 五子棋的相关介绍 1.1.1 五子棋的简介 五子棋是一种两人对弈的纯策略型棋类游戏,棋具与围棋通用,是起源于中国古代的传统黑白棋种之一。发展于日本,流行于欧美。容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。无禁手玩法:黑先白后,谁先连五谁胜禁手玩法:黑先行棋,黑棋只能走冲四活三胜,黑双活三禁手 双冲四禁手 四三三禁手 四四三禁手 六连长连禁手;白后手,白棋无任何禁手,还可以抓黑棋的禁手点取胜职业规则玩法:三手交换五手两打,黑棋有禁手,意思是下到第三手棋执白方有权选择交换下黑棋或者继续行棋,下到第五手时执黑方给出两个打点让执白方选择去掉一个打点下剩下的打点。 不同的棋型,其优先级不同。例如,四个棋子连成一线且还能继续落子的棋型(活四)显然要比只有三个棋子连成一线(活三或死三)好。要使计算机正确地做出这种判断,就要把第一种棋型的估值设高。事实上,对于每一种特定的棋型,都需要相应的估值来反映其优劣情况。另外,由于搜索模块频繁地调用估值函数,为了尽可能地加快搜索速度,估值函数应设计的越仔细越好。估值时,需要从四个方向上来考虑所下棋子对当前盘面的影响。这个方向分别是以该棋子为出发点,水平、竖直和两条为45 度角和135 度角的线。为方便分析棋盘上的格局,本文中约定以“A”代表黑子,“B”代表白子,“?”代表棋盘上空位。算法中关于棋子死活的规定如下:一方落子后,它的落子连成的一条线有两条不损伤的出路,则称该棋型是活的。否则称该棋型是死的。比如关于活三的定义:不论对手如何落子,仍然至少有一种方法可以冲四。因此,B?AAA? B 中的三个A,不能算是活三;B?AAA??B 中的三A,也不是活三,尽管它有可能成为活四。这样,棋型的估值设计才能比较细致。 本文算法对特定棋型的估值如表1 所示。 表一:特定棋型的估值 2.1.2 Alpha–Beta 搜索 在博弈问题中,每一个格局可供选择的行动方案都有很多,因此会生成十分庞大的博弈树。一般地只生成一定深度的博弈树,然后进

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档