五子棋人人对战c五子棋课程设计报告.doc
《五子棋人人对战c五子棋课程设计报告.doc》由会员分享,可在线阅读,更多相关《五子棋人人对战c五子棋课程设计报告.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流五子棋人人对战c五子棋课程设计报告.精品文档.VC课程设计报告学 院:理学院专业班级:信息与计算科学 班学生姓名:*学生学号:12345指导教师:#提交时间:2013年 07 月 02 日成 绩:设计题目: 五子棋人人对战 目录第1章 引言4第2章 任务概述42.1问题概述42.1.1问题重述42.1.2设计目的42.2需求分析42.2.1基本要求42.2.2游戏功能介绍4第3章 概要设计43.1功能设计43.2程序结构43.3基本流程4第4章 程序实现44.1主要变量及函数的说明44.1.1主要变量44.1.2主要函数44.2主要功能的实现
2、44.2.1类声明44.2.2棋盘初始化44.2.3开始下棋44.2.4判断下棋合法44.2.4判断输赢4第5章 结果与总结45.1 运行结果截图45.2总结4参考文献:4第1章 引言通过一学期的课程学习,对和Visual2010 C+编程环境有了一定程度的了解。根据课程要求,利用两周时间对所学知识加以巩固学习,用c+编译小游戏,初步了解程序设计与软件实现的思想。该设计通过对“五子棋人人对战”游戏的编写对所学知识复习巩固。程序设计过程中,先对问题进行了全面分析,将“五子棋人人对战”划分成几个子问题后,逐步细化,最终归结成一个个函数的实现。第2章 任务概述2.1问题概述2.1.1问题重述设计一个
3、五子棋,能实现人人对战。(棋盘大小为13X13)2.1.2设计目的独立地利用所学的C+程序设计和Visaul C+6.0编程环境编写程序。2.2需求分析2.2.1基本要求明确五子棋游戏的游戏规则,编写程序实现其功能。2.2.2游戏功能介绍为了更好地实现游戏,首先必须明确“五子棋”的游戏规则。大体的规则可描述如下:(1) 进入主界面后,选择开始游戏。(2) 开始游戏后,一方开始下棋。(3) 再由另一方下棋(4) 判断输赢。(5) 玩家选择结束游戏时,结束游戏。第3章 概要设计3.1功能设计程序主要实现的功能如下所述:(1)启动程序,出现主界面。(2)显示棋盘。(3)选择开始游戏。(4)有一方开始
4、下棋,并判断下棋是否合理。(5)判断输赢。(6)有另一方开始下棋,并判断下棋是否合理。(7)判断输赢。(8)选择是否继续。(9)游戏结束后,退出游戏。3.2程序结构程序的结构如下图所示: 图3.2程序结构 3.3基本流程根据游戏规则及其结构图,画出如下程序基本流程图: 图3.3基本流程第4章 程序实现4.1主要变量及函数的说明4.1.1主要变量char board1414; /棋盘大小int x; /下棋的横坐标int y; /下棋的列坐标int count; /下棋的个数int a; /交换下棋4.1.2主要函数void MainForm(); /显示主菜单void PlayEplain()
5、; /游戏说明void PrintBoard(); / 打印初始棋盘 void InitialBoard(); /初始化棋盘void PlayChess(); /开始下棋 wuziqi(); /初始化a和count,a是交换下棋,count记录棋盘是否下满int CheckWin(int x,int y); /判断赢棋4.2主要功能的实现4.2.1 类声明class wuziqipublic:void MainForm(); /显示主菜单 void PlayEplain(); /游戏说明void PrintBoard(); /打印初始棋盘 void InitialBoard(); /初始化棋盘
6、void PlayChess(); /开始下棋 wuziqi(); /初始化a和count,a是交换下棋,count记录棋盘是否下满private:int CheckWin(int x,int y); /判断赢棋char board1313; int x; /下棋的横坐标int y; /下棋的列坐标int count; /计数判断是否满int a; /判断谁落子4.2.2棋盘初始化Void wuziqi:InitialBoard() /初始化棋盘,将所用的位置设置为空格for(i=1;iMXA;i+)for(i=1;iMXA;i+)将所有下棋的格线设为空格Void wuziqi:PrintBo
7、ard() /打印棋盘 利用制表符打印棋盘( )4.2.3开始下棋void PlayChess(); /开始下棋由a 的值决定下棋方If(a=0)一方下棋Else另一方下棋用坐标决定下棋位置4.2.4判断下棋合法如果输入是否越界 如果boardxy= 空格就可以下棋 boardxy 设为 如果boardxy是否已经有棋子 输出 输入错误,此位置已经有棋子了,请重新输入!endl; continue;返回去继续输入。如果输入是否越界 cout 输入位置超出范围,请重新输入!endl;PrintBoard();打印棋盘返回重新输入4.2.5判断输赢int CheckWin(int x,int y)
8、; /判断赢棋当一方有五个棋子连成线时赢,用-1和1判断输赢,当棋盘满是为平局。 第5章 结果与总结5.1 运行结果截图1.启动画面图5-1启动画面2.游戏说明图5.2游戏说明 3.退出游戏图5.3退出游戏4进入游戏图5-4 进入游戏5输入越界 图5-5输入超出范围6。已有棋子 图5-6已有棋子7游戏进行图5-7 游戏进行8.判断输赢图5-8 判断输赢5.2总结编辑小游戏这在以前我都以为是遥不可及,但现在通过这次五子棋的设计我明白了,并不是如此,通过课程设计,我们对C+程序设计这门课程有了更深一步的了解。它是计算机程序设计的重要技术。同时也使我知道,要学好这门课程,仅学习书本上的知识是不够的,
9、还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。另外,在课程设计期间,让自己的思维变得活跃,也会看懂,学明白程序问题,总之,受益匪浅。参考文献:C+程序设计(第8版)(美)Walter Savitch 清华大学出版社附录:#include#include /setw(3)using namespace std;const int MAX=13;class wuziqipublic:void MainForm(); /显示主菜单 void PlayEplain(); /游戏说明void PrintBoard(); /打印初始棋盘 v
10、oid InitialBoard(); /初始化棋盘void PlayChess(); /开始下棋 wuziqi(); /初始化a和count,a是交换下棋,count记录棋盘是否下满private:int CheckWin(int x,int y); /判断赢棋char board1313; int x; /下棋的横坐标int y; /下棋的列坐标int count; /计数判断是否满int a; /判断谁落子wuziqi:wuziqi():a(0) /将a初始化为0void wuziqi:PlayChess()count=0;for(;) /交换下棋 /玩家输入if(a=0) /先下棋co
11、ut请玩家输入下棋位置!endl; coutx; couty;system(cls); /清屏if(x0&x0&y=MAX) /判断请输入是否越界if(boardxy= ) /如果boardxy= 就可以下棋boardxy=O; / PrintBoard1();PrintBoard();count+;else /如果boardxy是否已经有棋子 system(cls);cout 玩家输入错误,此位置已经有棋子了,请重新输入!endl;/PrintBoard1();PrintBoard();continue;else system(cls);cout 玩家输入位置超出范围,请重新输入!endl;
12、/PrintBoard1();PrintBoard();continue;if(CheckWin(x,y)=1) /判断输赢cout 恭喜玩家获得胜利!endlendl;break; if(count=MAX*MAX) /判断是否下满cout平局!endl;break;a=1;/玩家输入和玩家输入一样else if(a=1)cout请玩家输入下棋位置!endl; coutx; couty;system(cls);if(x0&x0&y=MAX)if(boardxy= )boardxy=X;PrintBoard();count+;else system(cls);cout 玩家输入错误,此位置已经
13、有棋子了,请重新输入endl;PrintBoard();continue;else system(cls);cout 玩家输入位置超出范围,请重新输入!endl;PrintBoard();continue;if(CheckWin(x,y)=-1)cout 恭喜玩家获得胜利!endl;break;if(count=MAX*MAX)cout平局!endl;break;a=0;void wuziqi:InitialBoard()/初始化棋盘,将所用的位置设置为“ ”for(int i=0;i14;i+)for(int j=0;j14;j+)boardij= ;void wuziqi:PrintBoa
14、rd()/打印棋盘coutendl;cout*-*-*-*-*-*-*-*-*-*-*-*-*-*五子棋棋盘*-*-*-*-*-*-*-*-*-*-*-*-*endl;int i,j;cout ;for(i=1;i=MAX;i+)coutsetw(2)i;coutendl;for( i=1;iMAX+1;i+)for( j=1;jMAX+1;j+)if(boardij=O)if(j=1)coutsetw(20)i;elsecout; else if(boardij=X) if(j=1)coutsetw(20)i;elsecout;elseif(i=1)&(j=1)coutsetw(20)1;e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 五子棋 人人 课程设计 报告
限制150内