C课程设计实验报井字游戏_第1页
C课程设计实验报井字游戏_第2页
C课程设计实验报井字游戏_第3页
C课程设计实验报井字游戏_第4页
C课程设计实验报井字游戏_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、测控技术与仪器2012级 C+课程设计实验报告 井字游戏 班级: 学号: 姓名: 目 录一、课程设计目的二、课程设计内容与实现的功能1、课程设计内容2、设计思想3、实现的功能三、系统的设计四、用户手册五、算法流程图六、源程序七、参考文献一、 课程设计目的进行C+面向对象程序设计课程设计主要是在学习C+这门面向对象语言的基础上,在完成C+面向对象程序设计各部分实验的基础上,掌握一种可视化编程的方法,并通过实践加深对可视化编程与C+面向对象程序设计语言特点的认识与理解。同时,可以提高运用C+编程语言解决实际问题的能力;锻炼实际的编程能力、创新能力及团队组织、协作开发软件的能力;还能提高调查研究、查

2、阅技术文献、资料以及编写软件设计文档的能力。理解的Visual C+ 6.0运行过程,进一步的了解C+是如何面向对象的程序设计,以及在我们平常使用的一些软件的一些功能怎么实现的算法,以及一些基本的菜单如:窗口菜单、编辑菜单、工具菜单、还有文件菜单都是如何实现的。在这次课程设计中我主要负责的模块是页面的美化和游戏难度、判断游戏结果的函数以及游戏模式等函数。二、 课程设计内容与实现的功能1、课程设计内容开发一个简单的可以开发人的智力的小游戏。游戏的界面类一个“井”字,故取名为“井字游戏”。本游戏界面被分为九个方格,每个方格内可以放一个“棋子”,然后游戏开始,双方可以在任何一个格子内放自己的棋子。游

3、戏规则非常简单:双方哪一个先使自己的三个棋子连成一条线(可以是横向的,纵向的,或是斜向的)就算赢,如果双方在九个格子内都占满后均没有完成就算平局,点击开始下一局游戏。2、设计思想井字棋是一个流传已久的传统游戏。游戏由两个人轮流来下,分别用“X”和“O”来代替自身的棋子。棋盘分9个格,双方可以在轮到自己下的时候,可以用棋子占领其中一个空的格子。3、实现的功能(1)简单的开始玩家对战和退出程序的实现。(5)判断游戏输赢的实现:游戏结束后,系统自动弹出对话框显示游戏结果。三、 系统的设计1程序总体结构:先输出3*3的棋盘格式,然后提示玩家输入棋子位置,接着就是判断该位置是否已经有棋子,如果有,则提示

4、玩家再输入棋子的位置,否则,判断玩家是否最后再输出最后棋盘的结果。2界面设计 :界面背景是黑色的3*3的棋盘格式,玩家可以通过输入区域号码来表示下在何处,如果上面有棋子则需重下,如果两方不能赢则为平局则棋盘上对应的位置就会显示该玩家的代表符号,每走一步,就会显示新的棋盘。四、用户手册1、使用平台是:Visual C+2、点击运行,则出现这样的界面:点击开始按钮,弹出对话框提示游戏开始:游戏结束后弹出对话框显示游戏结果如果上面有棋子则需重下 五算法流程图 开始 选项 1.玩家对战 2.退出游戏 游戏结束显示结果 游戏开始 按任意键继续六、源程序:#includeusing namespace s

5、td ;const char a34= ,;int b10;int n=0;/条件变量class qi/声明棋类public:void output();void conditions();void qizi1();void qizi2();int pe;void qi:output()system(cls);/清屏printf(*西安科技大学*n);printf( 在玩家对战中 代表玩家1 代表玩家2 n);printf( 1 2 3 n);printf( n);printf( n);printf( n);printf( 4 5 6 n);printf( n);printf( n);prin

6、tf( n);printf( 7 8 9 n);printf( n); printf(*测控1202班 王涛 王凡宇 制作*n);printf( %s %s %s n,ab1, ab2,ab3);printf( n);printf( n);printf( n);printf( %s %s %s n,ab4,ab5,ab6);printf( n);printf( n);printf( n);printf( %s %s %s n,ab7,ab8,ab9);printf( n);void qi:conditions()if(b1=1 & b2=1 & b3=1) | (b4=1 & b5=1 & b

7、6=1) | (b7=1 & b8=1 & b9=1) | (b1=1 & b4=1 & b7=1) | (b2=1 & b5=1 & b8=1) | (b3=1 & b6=1 & b9=1) | (b1=1 & b5=1 & b9=1) | (b3=1 & b5=1 & b7=1)n=1;/玩家1赢/如果三个连续的井为1或对角线为1,即就是n=1,则玩家1赢。elseif(b1=2 & b2=2 & b3=2) | (b4=2 & b5=2 & b6=2) | (b7=2 & b8=2 & b9=2) | (b1=2 & b4=2 & b7=2) | (b2=2 & b5=2 & b8=2)

8、 | (b3=2 & b6=2 & b9=2) | (b1=2 & b5=2 & b9=2) | (b3=2 & b5=2 & b7=2)n=2;/玩家2赢/如果三个连续的井为2或对角线为2,即就是n=2,则玩家2赢。elseif(b1=1 | b1=2) & (b2=1 | b2=2) & (b3=1 | b3=2) & (b4=1 | b4=2) & (b5=1 | b5=2) & (b6=1 | b6=2) & (b7=1 | b7=2) & (b8=1 | b8=2) & (b9=1 | b9=2)n=3;/和局/如果井1-9为全为1或全为2,即就是n=3,则产生和局。elsen=0;

9、/未完继续/如果上述都不符合,即就是n=3,则继续。void qi:qizi1()int m;coutpe;if(pe=1 & pe=9)m=pe;elsecout输入错误,请输入1-9范围!n;goto loop;if(bm!=0)cout错误,已输入过!endl;goto loop;bm=1;/井中字符为1.void qi:qizi2()int m; coutpe;if(pe=1 & pe=9)/输入1-9之类的字符。m=pe;elsecout输入错误,请输入1-9范围!n;/如果输入错误,goto loop;/跳转到loop,则继续输入1-9字符。if(bm!=0)/如果输入的字符为0,

10、cout错误,已输入过!endl;/则输出错误,goto loop;/跳转到loop,则继续输入1-9字符。bm=2;/井中字符为2.int main()/主函数loop3:qi c;/定义类名int i;char ch1010= ,p1,p2; for(i=0 ; i10 ;i+) bi=0; bool quit = false;/布尔型 给quit赋值为假for(;)char choice;/定义一个字符型变量system(cls);/清屏cout 井字棋小游戏 endl;cout*西安科技大学*endl;cout* 1.玩家对战 *endl;cout* 2.退出游戏 *endl;cout

11、*测控1202班 王涛 王凡宇 制作*endl;coutchoice;switch(choice)/创造菜单工具case 1:/如果输入1,则进入玩家对战。 loop2:c.output();/主屏幕函数调用c.qizi1();/玩家1的函数调用c.conditions();/判定玩家1,玩家2,和局的函数调用if(n=1)/如果n=1c.output();/判定玩家1,玩家2,和局的函数调用(进入此函数进行判定)cout恭喜玩家1获胜endl;system(pause);/则玩家1 赢了,goto loop3;/跳转到loop3if(n=3)c.output();cout漂亮的对局双方和局;system(pause);/则双方和局,按任意键继续。goto loop3;c.output();c.qizi2();/玩家1的函数调用c.conditions();if(n=2)c.output();cout恭喜玩家2获胜endl;sy

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论