c++课程设计-五子棋游戏

上传人:第*** 文档编号:55632505 上传时间:2018-10-03 格式:DOC 页数:20 大小:8.76MB
返回 下载 相关 举报
c++课程设计-五子棋游戏_第1页
第1页 / 共20页
c++课程设计-五子棋游戏_第2页
第2页 / 共20页
c++课程设计-五子棋游戏_第3页
第3页 / 共20页
c++课程设计-五子棋游戏_第4页
第4页 / 共20页
c++课程设计-五子棋游戏_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《c++课程设计-五子棋游戏》由会员分享,可在线阅读,更多相关《c++课程设计-五子棋游戏(20页珍藏版)》请在金锄头文库上搜索。

1、 五子棋游戏五子棋游戏1.设计目的设计目的(1)加深对面向对象程序基本的理解和掌握。(2)熟练掌握基本流程图的绘制。(3)能够在调试程序中快速发现并排除程序中的错误。(4)提高面向对象程序语言解决实际中的问题的能力。进一步培养结构化程序设计的思想,加深对高级系统语言基本语言要素和控制结构的理解,针对 C+语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。此课程设计着眼于知识的运用,把平常学的知识运用到课程实践中来,本身就是考察我们知识运用能力。要求熟悉运用一些编程软件,对我们所学的理论知识进一步的深化。2.功能描述功能描述(1)输出棋盘界面(2)玩家

2、轮流下棋(3)判断键盘输入的坐标位置(4)判断是否在同一位置下棋(5)判断赢家(6)结束游戏由两个玩家分别下棋,按任意键开始游戏,显示棋盘,用户通过输入横纵坐标的位置下棋,当某一个玩家五子相连,则赢。界面要求:初始状态显示棋盘,并显示两个玩家的操作键及初始玩家名称;游戏进行状态动态显示棋盘,不同玩家的棋子用不同符号显示,屏幕上显示当前玩家号,结束时显示赢家名称。3.总体设计总体设计3.1 系统流程图系统流程图五子棋对弈系统流程图如下:否是否 是图图 1 程序总体图程序总体图白方下子判断位置是否有棋找另一位置白方下子判断白方是否胜出跳出白棋获胜黑方下子判断位置是否有棋 棋找另一位置黑方下子判断黑

3、方是否胜出跳出黑棋获胜判断是 否重现 开局 否否游戏结束开始图图 2 算法流程图算法流程图3.2 详细设计详细设计3.2.1 本系统的主要结构和类结构本系统的主要结构和类结构(1)五子棋功能实现的主要结构函数 void getpointxy(); /白棋出子函数 void getpointmn(); /黑棋出子函数 void showqipan(); /实现 20 行 20 列正方形界面输出 void print(); /输出下一棋盘界面及计数 bool IsxyWin(); /白棋获胜 bool IsmnWin(); /黑棋获胜 void menu();/显示开始菜单界面某方在水平方向 是否

4、大于 4某方在正对角线 方向是否大于 4某方在垂直方向 是否大于 4某方在反对角线 方向是否大于 4否白(黑)方获胜白(黑)方获 胜白(黑)方获 胜白(黑)方获 胜进入 选择 是否 重新 开局 框黑(白)方下 子是是是是否否否白(黑)方下子游戏开始(2)五子棋类的结构 class five int x,y,m,n,num_xy,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) /构造函数初始化 x

5、= X; y = Y; m = M; n = N; num_xy = Num_xy; num_mn = Num_mn; for(int i = 0 ; i y x; if (!(1= 400) std:cout n m; if (!(1= 400) std:cout q; if(strcmp(q,“c“) five:showqipan(); (4)输出模块: void five:showqipan() /输出 20 行 20 列的坐标数值 int p=0,q=0; for(int i = 0 ; i =0) q+; if(q=0) q+; if(q= 0 ; i -) if(qipany-1i

6、 != 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 =0 else return 0; 黑棋获胜情况与白棋类似(6)主函数模块:输出欢迎使用的界面,判断游戏是否结束,若结束输出胜出方并结束游戏。void main() std:cout temp; if(temp !=1) /游戏开始退出控制 exit(1); if(temp = 1) std:cout using namespace st

7、d; class five int x,y,m,n,num_xy,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) /构造函数初始化 x = X; y = Y; m = M; n = N; num_xy = Num_xy; num_mn = Num_mn; for(int i = 0 ; i y x; if (!(1= 400) std:cout n m; if (!(1= 400) std:cou

8、t q; if(strcmp(q,“c“) five:showqipan(); void five:showqipan() /输出 20 行 20 列的坐标数值 int p=0,q=0; for(int i = 0 ; i =0) q+; if(q=0) q+; if(q= 0 ; i -) if(qipany-1i != O) break; if(qipany-1i = O) num1+; for( int i = y ; i = 0 ; i -) if(qipanix-1 != O) break; if(qipanix-1 = O) num2+; for(int i = 0 ; i =0

9、else return 0; bool five:IsmnWin() /黑棋获胜实现函数 int num1=1,num2=1,num3=1,num4=1; int i; for( i = m ; i = 0 ; i -) if(qipann-1i != *) break; if(qipann-1i = *) num1+; for( i = n ; i = 0 ; i -) if(qipanim-1 != *) break; if(qipanim-1 = *) num2+; for(i = 0 ; i =0 else return 0; void main() std:cout temp; if(temp !=1) /游戏开始退出控制 exit(1); if(temp = 1) std:cout “游戏开始:“ endl; for(int i = 0 ; ; i +) a.getpointxy(); a.print(); if(a.IsxyWin() std:cout “白棋胜“ endl; std:cout “游戏结束n“; exit(0); a.getpointmn(); a.print(); if(a.IsmnWin() std:cout “黑棋胜“ endl; std:cout “游戏结束n“; exit(0);

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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