象棋游戏的开发及测试

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华夏学院

课程设计报告书课程名称:软件测试综合设计

题目:象棋游戏的开发及测试系名:信息工程系

专业班级:

姓名:

学号:******

****:***

2013 年1 月4 日

课程设计任务书

学生姓名:专业班级:

指导教师:工作单位:信息工程系

设计题目:象棋游戏的开发及测试

初始条件: jdk1.5+MyEclipse

要求完成的主要任务:

用Java语言实现一个网络象棋游戏软件,并对实现后的软件进行测试。要求按照IEEE 标准模板给出具体的测试计划书、软件的黑盒测试用例规格说明,并按照测试用例进行测试,提交缺陷报告。

提示:IEEE标准测试文档模板可以参阅人民邮电出版社佟伟光主编的教材《软件测试》

设计报告撰写格式要求:

1设计题目与要求

2 设计思想

3系统结构

4 数据结构的说明和模块的算法流程图

5 使用说明书(即用户手册)、运行结果、关键界面截图

6 测试计划说明书、测试用例规格说明、缺陷报告

7 自我评价与总结

8 附录:程序清单,注意加注释(包括关键字、方法、变量等),在每个模块前加

注释;

时间安排

12月24日~12月29日完成网络象棋游戏的开发、系统的打包和验收;

1月2 日~1月4日完成测试计划、测试用例的设计、测试缺陷报告的写作,并将以上工作整理成为课程设计报告,于1月4日下午提交课程设计报告。

指导教师签字:2012年 1 月4日

系主任签字:2012年 1 月4日

课程设计报告书

1.设计题目与要求

1.1.设计题目

象棋游戏的开发及测试

1.2.设计要求

实现一个基于网络的象棋游戏,可以让两方在网上进行象棋游戏对战。红方先走,然后黑方走,交替进行。给每个棋子定义标准的走法规则。

对每个棋子的走法规则进行测试,写出各个棋子走法的测试用例。

3.设计思想

中国象棋是双方在有着9条竖线和10条横线的棋盘上对弈,竖线和横线的交叉称为棋点或对弈点,每个棋子都是在棋点上行走。所以要先在画布的具体位置上画出棋盘。10条横线和9条竖线形成90个正方形的小方格,4条对角线构成帅和将的九方格。一个和棋盘背景颜色相同的填充矩形形成红黑方的分界。

楚河汉界将棋盘分成两等份,每一边都有一块有9个点组成的九宫,棋子“将”、“帅”和“士”只能在九宫内移动,并且“将”和“帅”每一步只可以水平或垂直移动一个棋点;“士”只能在九宫内移动,并且它每一步只可以沿着对角线移动一个棋点;“象”必须一次沿着对角线方向走两个棋点,但它不能过河也不能跳过或穿越障碍,“马”没一步只可以水平或垂直移动两个棋点,但必须按对角线向左或向右移动。中国象棋的“马”不能跳过障碍,即马不能别腿。“车”可以水平或垂直方向移动人一个无障碍的点。“炮”移动起来和车类似,但它必须跳过一个棋子来吃掉对方的一个棋子,被跳过的那个棋子称为桥或者屏风。“兵”每步只能向前移动一个棋子过河以后,它便增加了向左右移动的能力,并不允许向后移动

移动棋子,实际上就是监听了鼠标点击相应事件,先选棋子,通过点击了某

一个有效的棋子区域,就将该点转化为棋子所在的行和列,再点击其他的有效区域,将先前的棋子的值复值给新的区域的值,并将原来的区域的值改为0,最后再调用repaint(),就实现了棋子的移动效果。

4.系统结构

4.1系统流程图

图1 系统运行流程图

4.2模块功能定义

失败帅(将)被"将军",无法避免地同对方将(帅)直接对面

5.详细设计

5.1 画棋盘

该棋盘是由10条横线和9条竖线形成90个正方形(边长为50)的小方格,并在帅和将所在的特殊位置画出相应的对角线来,中间是由一个和棋盘背景颜色相同的填充矩形形成红黑方的分界,炮和兵(卒)初始化所对应的位置的棋盘背景是由相应的直线所画出来的。并在棋盘相应的位置写上楚河、汉界字样。

5.2 在棋盘中画棋子

图2棋盘及棋子初始化界面图

用一个二维数组来定义相应的棋子,用二维数组的下标来表示该棋子所在的行和列,用二维数组的值来表示相应的棋子,即0表示没有棋子,1-7表示黑方的(车马相士将炮卒),8-14表示红方的(车马相士帅炮兵)。

5.3选择棋子

用一个变量temp当做一个开关来切换红黑两方走棋的顺序。初始值为0表示红方先走,红方走完后立即将该temp值改为1,当再次点击棋子时,只能使用黑方了,黑方同理。当选中一方的棋子时,将选中的当前行赋值给selectRow,将选中的当前列赋值给selectCol,然后调用repaint()方法,并在paint()方法

中进行判断,如果selectRow和selectCol的值发生了变化,就在变化的位置处画上相应的正方形。

5.4走棋

先选中棋子,通过点击了某一个有效的棋子区域,就将该点转化为棋子所在的行和列,再点击其他的有效区域,将先前的棋子的值赋值给新的区域的值,并将原来的区域的值改为0,最后再调用repaint(),就实现了棋子的移动效果了。实现了棋子的移动效果后就要去实现各类棋子的走法规则,即让每个棋子按照规定的法则来移动。

6.棋子走法规则及测试

6.1 兵(卒)的走法规则测试

走法规则:兵(卒)在没有过"河界"前,每着只许向前直走一步;过"河界"后,每着可以向前走一步,也可以横走一步,但不能后退。

图3 没有过河可移动位置图4 过河后可移动的位置

6.2 炮的走法规则测试

走法规则:当炮在横纵轴方向上没有遇到障碍物时可以随意移动,一旦有障碍物出现的话,障碍物的前方必须存在有对方棋子时,才能吃掉对方的棋子

图5 没有障碍物可移动位置图6 有障碍物可移动的位置

相关文档
最新文档