资源描述:
《五子棋概要设计说明书》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、[五子棋]——概要设计说明书概要设计说明书1引言五子棋是一种非常常见的双人游戏,规则为双方交替落子,直到有一方下出五子连续,五子连珠为赢。1.1编写目的完成项目作业,锻炼编程能力,培养思维。1.2背景说明:a.软件名称为“五子棋”;b.项目小组成员为:郭祥,李斌,冉庆国,朱琳;1.4参考资料参考资料:1.实验报告提示文档网络资源;2.网络资源:图片,人机对战算法参考;2总体设计2.1需求规定说明对本系统的主要的输入输出项目、处理的功能性能要求,详细的说明可参见附录C。2.2运行环境简要地说明对本系统的运行环境(包括硬件环境和支持环境)的
2、规定,详细说明参见附录C。[五子棋]——概要设计说明书2.3基本设计概念和处理流程1.界面以及落子处理1.使用二维数组Chessboard[15,15]储存棋盘的状态,以0表示没有放子的位置,以1表示放黑子的位置,以2表示放白子的位置;2.以鼠标的状态提示当前持子的一方;3.将棋盘作为图片的形式贴处在程序界面上;4.加载棋子资源(黑、白棋子),当鼠标在棋盘上点击的时候产生事件,处理鼠标的位置产生对应的棋盘坐标位置;5.判断落子出是否可以落子:不可以则不做任何处理,不改变鼠标的状态;可以落子,则打印对应的棋子图像,记录棋盘位置,并将位置传
3、递给判定函数;6.交换持子方,重复落子过程,直到判定函数产生胜出结果;2.五子棋判胜本功能模块主要对游戏的胜负进行判定.1.由玩家输入棋子所在位置,由系统判定胜负,若胜,则游戏结束;否则,游戏继续.2.对胜负判定需先确定一个中心棋子位置.3.由一个中心棋子可以引出四条线形成五子连一线.4.判定过程中注意越界现象.概要设计1.五子棋的判胜条件即为5个相同的棋子连在一条线上.2.以一个棋子为中心,有4条线可以形成五子连线.如图所示:(描红的为中心棋子)[五子棋]——概要设计说明书3.中心棋子即为最后一步所下棋子.4.以1线为例,从中心棋子出
4、发(设为白子),先向左进行判断,若棋子为白子,则计数器加1(初始值为1),否则(为黑子或无子),则返回中心棋子,向右进行判断,进行相同操作.5.1线判定结束后,若计数器为5,则判白子胜,否则,计数器归1,再从2,3,4线按顺序进行判定.6.棋盘的每个坐标有3个状态,分别为无子(标记为0),白子(标记为1),黑子(标记为2),对棋盘点进行判断时,只需判定其所在状态即可。7.若棋盘下满,仍未有五子连线,则判和。3.悔棋开始以前按钮设置为禁止(F),只有在棋局的过程中,并且轮到该本方落子,并且棋盘有2个棋子或2个棋子以上时,“悔棋”按钮才被置
5、于激活状态(T);一局比赛中只可以悔棋2次。结构化说明:IF本方下棋IFcount棋子>=2激活“悔棋”按钮IF对方同意count棋子=count棋子-2ELSE返回ELSE返回ELSE返回在游戏中,如果一方点击“悔棋”按钮,则向对方提出悔棋请求。对方在收到“悔棋”请求后会弹出确认对话框,点击“是”接受“悔棋”请求,也可以点击“否”来拒绝。如果点击接受按钮,则在双方棋盘上清除最新下的两个棋子,然后请双方继续进行下子操作。4.人机对战算法遍历整个棋盘,找出所有空白点,在每个空白点判断与该点相邻的4个方向上各方连续的棋子数,在每一个方向上,
6、判断白子和黑子的连续的个数,判断活3,冲4等各种棋形状况,为各种状况赋权值。然后将该方向上的权值返回,将每个空白点的各个方向的权值相加,为该点权值。令设计一个数组,储存每个空白点权值,然后在遍历整个棋盘空白点,计算出每个空格点,找出权值最大点,也就是当前情况下,电脑最应该落子的点。返回权值最大的点的坐标确定棋盘为二维数组,先写一个chessboard函数,用双重for(i,j)语句,遍历整个棋盘,,即chessb[i][j]=1表示黑子,chessb[i][j]=2表示白子在每个方向上用count来计数,count+=11,十位数表示和
7、要下的子一样子的个数,个位数表示遍历的空间数,将count值返回judge函数中设置judge评分函数,count/10值来判断,count/10>=4时权值为500000,count/10=3权值为10000,count/10=2权值为150,count/10=1权值为15设置四位数组computer[0,i,j,x]为黑子棋盘computer[1i,j,x]为白子棋盘,x=0表示水平方向,x=1表示竖直方向,x=2表示+45°方向,x=3表示-45°方向,将各个方向上的count值赋给computer[]上。[五子棋]——概要设计说
8、明书然后再遍历整个棋盘空白点,计算出每个空格点4个方向上权值的总和,做比较,放回权值最大的点的坐标(这里用全局变量i,j表示)即通过比较,不断修改全局变量的值,最后所得的i,j点就是计算机落子点。2.4结构