五子棋控制台课设题目.doc

上传人:cl****1 文档编号:557950343 上传时间:2022-10-20 格式:DOC 页数:24 大小:281.01KB
返回 下载 相关 举报
五子棋控制台课设题目.doc_第1页
第1页 / 共24页
五子棋控制台课设题目.doc_第2页
第2页 / 共24页
五子棋控制台课设题目.doc_第3页
第3页 / 共24页
五子棋控制台课设题目.doc_第4页
第4页 / 共24页
五子棋控制台课设题目.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《五子棋控制台课设题目.doc》由会员分享,可在线阅读,更多相关《五子棋控制台课设题目.doc(24页珍藏版)》请在金锄头文库上搜索。

1、课设题目: 五子棋游戏 需求分析:程序所能达到的功能1)输出棋盘界面菜单及图像2)开始进入控制3)黑白棋正确输入格式控制4)判断黑白输赢控制5)正确计数对羿步数及下一步所要走的棋盘界面输出的形式以20行20列的坐标的形式输出输入的形式和输入值的范围用坐标方位确定所要输入棋子的准确位置(先输入横坐标,再输入纵坐标)输入值的范围都比须在20行20列的正方形中(0=x=20,0=y=20) 系统设计本系统的主要结构和类结构1)五子棋功能实现的主要结构函数void getpointxy(); /白棋出子函数void getpointmn(); /黑棋出子函数void showqipan(); /实现2

2、0行20列正方形界面输出void print(); /输出下一棋盘界面及计数bool IsxyWin(); /白棋获胜bool IsmnWin(); /黑棋获胜void menu();/显示开始菜单界面2)五子棋类的结构class five private:int x; int y; int m; int n; int num_xy; int num_mn; char qipan2020; /定义20行20列的数组public: five(int X = 0,int Y =0,int M = 0,int N = 0,int Num_xy = 0,int Num_mn = 0) /构造函数初始化

3、x = X; y = Y; m = M; n = N; num_xy = Num_xy; num_mn = Num_mn; for(int i = 0 ; i 20 ; i +) /输出20行20列的棋盘界面 for(int j = 0 ;j 20 ; j +) qipanij = +; ;本系统所设计的主要技术简介;1)通过输出流实现五子棋美化的开始菜单界面2)图像处理技术控制界面的颜色3)在主函数中通过定义类的对象实现对功能函数的调用4)通过for循环语句实现20行20列的坐标界面的输出 系统工作流程介绍。 类的介绍:该类完成了对输入棋子坐标的初始化,通过for循环实现了一个20行20列的

4、坐标,在公有成员中定义了相应的功能函数void getpointxy(); /白棋出子及计数void getpointmn(); /黑棋出子及计数void showqipan(); /实现20行20列正方形界面输出void print(); /输出下一棋盘界面bool IsxyWin(); /白棋获胜bool IsmnWin(); /黑棋获胜void menu();/显示开始菜单界面 调试与测试: 调试过程中所遇到的问题及解决方法;)在我负责的部分中,在输出20行20列的坐标界面中开始设想用特殊字符代表坐标平面的位置,这样设计出版面效果会更好,但运行时,却出现如下的乱码错误最后只好用键盘上常见

5、字符+代替,)因为当输入的横坐标和纵坐标中值为二位数则与一位的数值之间存在间距的不同,为了正确输出20行20列正方形坐标,因此在当输入值小于10时,必须在结尾时输出一个空格)在判断棋子的输赢的过程中,通过四种情况的判断,只要其中的一种情况满足其累积值大于等于5,则获胜,但开始时却忽略了其中的一种情况,因为运行时没有报错,所以一直到后来,进入游戏操作中才被发现有问题,设计不完全测试数据:包括正确的输入输出结果和错误的输入及其输出结果如下是正确输出的结果:错误的输入:(3)经验与体会)通过课设,首先让我生产对编程的兴趣,尤其是当我真正把那程序运行出来时,那种兴奋劲,无法比拟。)在这次课设的过程中当

6、然也让我学到了很多东西,让我学到了很多课外的相关+高层次的东西,当然其中也复习到了,这学期刚学的+知识,尤其是通过类的运用,更让我体会面向对象在编程的过程中的作用,)另外,通过这次课设也让我体会到合作的重要性,通过我和我搭档(邱超)的分工合作,我们解决很多问题,让我真正认识到团队的力量 用户使用说明:说明如何使用你的程序,详细列出每一步操作步骤在整个程序中我负责三个版块:)类的实现:包括对数据成员的赋值和成员函数的初始化还有通过for循环实现对20行20列坐标的定义:源代码如下class five int x; int y; int m; int n; int num_xy; int num_

7、mn; char qipan2020; /定义20行20列的数组public: five(int X = 0,int Y =0,int M = 0,int N = 0,int Num_xy = 0,int Num_mn = 0)/构造函数初始化 x = X; y = Y; m = M; n = N; num_xy = Num_xy; num_mn = Num_mn; for(int i = 0 ; i 20 ; i +) /输出20行20列的棋盘界面 for(int j = 0 ;j 20 ; j +) qipanij = +; void getpointxy(); /白棋出子函数void g

8、etpointmn(); /黑棋出子函数void showqipan(); void print(); bool IsxyWin(); /白棋获胜bool IsmnWin(); /黑棋获胜 ; void five:getpointxy()/白棋出子实现函数 SetColor(70,300);std:cout请分别输入第num_xy+1 x y; if(x = 0 | y 20 | y 20 ) std:cout 出界,请重新输入:endl ; getpointxy(); else if(qipany-1x-1 != + ) std:cout 请所下的位置已经有棋子,请重新输入: = 400)

9、std:cout 棋盘已满,平局! endl; exit(0); else qipany-1x-1 = o; num_xy+; )白棋和黑棋落子情况的判断的实现,源代码如下:void five:getpointxy()/白棋出子实现函数 SetColor(70,300);std:cout请分别输入第num_xy+1 x y; if(x = 0 | y 20 | y 20 ) std:cout 出界,请重新输入:endl ; getpointxy(); else if(qipany-1x-1 != + ) std:cout 请所下的位置已经有棋子,请重新输入: = 400) std:cout 棋

10、盘已满,平局! endl; exit(0); else qipany-1x-1 = o; num_xy+; void five:getpointmn() /黑棋出子实现函数 std:cout请分别输入第num_mn+1 m n; if(m = 0 | n 20 | n 20 ) std:cout 出界,请重新输入:endl ; getpointmn(); else if(qipann-1m-1!=+) std:cout 请所下的位置已经有棋子,请重新输入: = 400) std:cout 棋盘已满,平局! endl; exit(0); else qipann-1m-1 = x; num_mn+

11、; )黑白棋输赢的判断,其源代码如下:bool five:IsxyWin()/白棋获胜实现函数 int num1=1,num2=1,num3=1,num4=1; for(int i = x ; i x+5& x+5= 0 ; i -) if(qipany-1i != o) break; if(qipany-1i = o) num1+; for( i = y ; i = 0 ; i -) if(qipanix-1 != o) break; if(qipanix-1 = o) num2+; for(i = 0 ; i 5 & x+i20 & y+i=0 & y-i-2=0 & i 5;i+ ) if(qipany-i-2x-i-2 != o) break; if(qipany-i-2x-i-2 = o) num3+; for(i = 0 ; x + i = 0 & i 5;i +) /另一方向斜的棋子情况判断 if(qipany-i-2x+i != o) break; if(qipany-i-2

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号