六子棋课程设计报告.doc_第1页
六子棋课程设计报告.doc_第2页
六子棋课程设计报告.doc_第3页
六子棋课程设计报告.doc_第4页
六子棋课程设计报告.doc_第5页
免费预览已结束,剩余24页可下载查看

下载本文档

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

文档简介

计算机学院计算机科学与技术专业程序设计综合课程设计报告 (2011/2012学年 第一学期)学生姓名: 学生班级: 学生学号: 指导教师: 2011年12月30号 六 子棋目录第一章课程设计目的和要求11.1目的11.2要求1第二章 课程设计任务内容2第三章 详细设计说明33.1模块描述33.2性能33.3输入项33.4输出项33.5流程逻辑33.6 测试计划5第四章 软件使用说明10第五章 课程设计心得与体会11附录1:参考文献13附录2:程序清单14第一章 课程设计目的和要求1.1目的C+课程设计的主要目的是让同学们进一步加深对C+语言和运用的了解,通过实践来逐步掌握c+编译工具的使用。同时可以巩固已经学习过的C+理论知识;进一步学习程序设计、程序调试的能力。通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C+语言程序的基本技巧,充分理解结构化程序设计的基本方法。掌握并且熟练应用C+程序设计中所学知识。掌握函数功能的划分方法,并运用此方法解决问题。学会程序测试方案的制定,并且实现程序的测试。通过此次实践,积累经验,提高分析和解决问题的能力。1.2要求基本要求:1.用c+编写一个小游戏; 2.游戏中要有真正属于自己的东西;3.清楚所开发系统软件的各个相关功能,以便顺利开发系统软件;4.设计完成的软件要便于操作和使用;5.对自己所设计的程序进行调试,并不断完善;6.在设计过程中熟练掌握软件编程的相关知识;7.详细体会并记录相关过程,并将心得体会写在课程设计报告中;8.设计完成后提交课程设计报告。 第二章 课程设计任务内容六子棋游戏改编自五子棋,该游戏可以锻炼人们的思维和观察能力。通过所学的C+编程语言知识,在Visual C+的语言环境中编写程序,以实现以下内容:完成六子棋游戏(人人对战),使该游戏能够实现如下功能:1. 玩家可以根据自己需要选择开始游戏、查看规则和退出游戏;2. 玩家根据自己的需要选择游戏规则;3. 显示玩家选择落子位置后的棋盘(显示落子位置);4. 判断是否结束游戏并且判断胜利方是谁;5. 结束游戏并显示游戏结果(胜利方是谁)、退出游戏; 此六子棋与五子棋的不同不仅在于棋子数目的多少,此游戏中还增加了另外一种新的游戏规则供玩家选择。第三章 详细设计说明3.1模块描述本程序比较简单也比较容易理解,没有分块。3.2性能该程序操作比较简单,可直接编译、连接、运行。操作简单,根据提示即可完成游戏的全过程。3.3输入项 玩家根据菜单提示选择自己要选择的项(开始游戏、查看规则、结束游戏、以规则一开始、以规则二开始),玩家需要根据提示(系统提示哪个玩家落子),轮流选择自己落子的位置。3.4输出项每位玩家落子前系统提示由哪位玩家落子,当玩家输入落子位置后程序以重新输出棋盘的方式显示出玩家落子的位置, 有一方满足游戏结束条件时输出胜利方。3.5流程逻辑流程图1如下: 开始选择菜单 1 退出游戏查看规则 3 2 玩游戏显示规则 选择玩法 1 2 游戏开始 游戏开始 玩家一落子 玩家一落子 结束判断是否结束判断是否结束判断是否结束判断是否结束玩家一胜利、玩家一胜 玩家二落子 玩家二落子 是 是 否 否 否 否 玩家二胜 玩家二胜 是 是3.6测试计划开始菜单截图:规则选择菜单:显示棋盘:显示落子位置(玩家一落子): 显示落子位置(玩家二落子):以规则一结束: 以规则二结束:选择查看规则:选择退出游戏 第四章 软件使用说明 本游戏需要在Visual C+6.0环境中运行,程序具操作简单,将源代码粘贴到Visual C+6.0中可直接编译、连接、运行2。操作非常简单,根据提示即可完成游戏的全过程。 第5章 课程设计心得体会 经过一个学期对c+程序设计的学习,我学习到了基本的理论知识,了解到了c+语言程序设计的思想,这些知识都为我的课程实践和进一步学习打下了坚实的基础。 在为期三周的c+课程设计中,我体会颇多,学到了很多东西。同时也加强了我对c+程序设计这门课程的认识,并且复习了自己以前学过的许多知识。这些都使得我对计算机语言学习有了更深入的认识!通过这次课程设计我收获颇丰,我相信会为自己以后的学习和工作带来很大的好处。 当刚开始知道课程设计是要干什么的时候自己就懵了,觉得这是个根本不可能完成的任务,但是不得不做。静下心来之后开始找题目,找到题目之后开始找材料但是发现让自己编写一个程序根本无从下手。于是从网上下了很多各种类型的小游戏的源代码,从里面学习自己该怎么做,怎么实现每一步。于是开始借鉴这那些成品来一步一步的编写自己需要实现的功能,发现自己所学到的那些东西根本是不够用的。然后一个一个功能的实现最后组合起来完成了现在自己的作品。老师要求我们的作品要有新意要与已有的那些东西有不同的地方,所以,我们还要想一些不同的游戏规则并且实现它们。经过不懈的努力终于完成了。 虽然这次课程设计是在参考其他原有程序的基础之上进行的,但是我觉得对自己是一个挑战和锻炼。我很欣慰自己能再程序中加入自己的想法和有关程序内容,也就是对原有的程序进行了一番改进,并有创新。但是我觉得自己的创新还是不够典型,不算很满意。另外由于时间的紧迫和对知识的了解不够广泛,造成了游戏中还有很多不足的地方,功能上还不够完善。以后我会继续努力,大胆创新,争取能编写出真正属于自己的程序。这次课程设计让我充分认识到了自己的不足,认识到自己动手能力的不够,也认识到实践对学习编程的重要性。我会在以后的学习中更加努力锻炼自己提高自己。总之,通过这次课程设计中基本运用到了我们所学的所有知识点,这样不仅加深了对 C+的各个知识点有了更深的理解,而且从中我也感受到了编写这样的大程序给我带来的无比的成就感,在这次课程设计中培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中的探索的艰难和成功的喜悦。虽然这个项目还不是很完善,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富使我终身受益。附录1:参考文献1谭浩强著.C+程序设计.北京:清华大学出版社,20042谭浩强著.C+程序设计题解与上机指导.北京:清华大学出版社,2004附录2:程序清单#include using namespace std;const char outstr114=,;void choice_sh1();/显示选择项(开始游戏、查看规则、结束游戏)void choice_sh2();/显示选择项(以规则一开始、以规则二开始)void game_ch();/游戏规则选择void game_st1();/以游戏规则一开始游戏void game_st2();/以游戏规则二开始游戏void rule_sh();/显示游戏规则void player2();/玩家二落子函数int panduan1(int,int,int);/以规则一开始游戏时游戏结束的条件int panduan2(int,int,int);/以规则二开始游戏时游戏结束的条件int choice1,choice2;int pl1515;int c,d;int a1515=0,1,1,1,1,1,1,1,1,1,1,1,1,1,2, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 6,7,7,7,7,7,7,7,7,7,7,7,7,7,8;int main()/主函数 以循环和switch语句的套用来实现做出正确的选择当、选择查看规则时可以重新选择开始游戏、退出游戏do/以循环的形式实现当选择查看规则时可以重新选择开始游戏、退出游戏choice_sh1();switch (choice1) case 1: game_ch();break;/当选择是1时开始游戏 case 2: rule_sh();break;/当选择是2时查看规则 case 3: system(pause);/当选择是3时退出游戏while(choice1=2);return 0;void choice_sh1()/显示选择菜单一coutendl;coutendl;coutendl;cout c+课程设计作业 六子棋endl;coutendl;coutendl;cout 作者:郭春 计算机102001班endl;coutendl; coutendl;cout*endl; coutendl;cout 选择 开始游戏endl; coutendl;cout 选择 规则介绍endl; coutendl;cout 选择 退出游戏endl; coutendl;cout*endl; coutendl; coutendl;do/当输入不为1、2、3中的一个时重新输入 coutchoice1;while(choice1!=1 & choice1!=2 & choice1!=3);void game_ch()/游戏规则选择system(cls);/清屏 choice_sh2();switch (choice2) case 1: game_st1();break;/当选择是1时以规则一开始游戏 case 2: game_st2();break;/当选择是2时以规则二开始游戏 void choice_sh2()/显示规则选择的菜单coutendl; coutendl; coutendl; coutendl; coutendl; coutendl;cout*endl; coutendl;cout 选择 以规则一开始游戏endl;coutendl;coutendl;cout 选择 以规则二开始游戏endl;coutendl;cout*endl; coutendl;do/当选择不为1、2中的一个时要重新输入选择 coutchoice2;while(choice2!=1 & choice2!=2);void rule_sh()/显示游戏规则system(cls); coutendl; coutendl; coutendl;cout 游戏规则:endl; coutendl; coutendl;cout 本游戏有两种规则供选择endl;cout 选择规则一时:endl;cout 当其中一方的棋子有六子相连的时候游戏结束endl; cout 输出游戏结果,程序结束endl;cout 选择规则二时:endl; cout 当其中一方的棋子六子排成一排并且每两个子中间隔着空位或对方棋子时游;cout 戏结束endl;cout 输出游戏结果,程序结束;void game_st1()/以规则一开始游戏 system(cls); int i,j,x,y; cout 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4endl; for(i=0;i=14;i+) if(i!=0) coutendl; couti%10; for(j=0;j=14;j+) coutoutstraij; /画棋盘 coutendl; coutxy) if(plxy=0 & x=0 & x=0 & y=14)/判断输入的落子位置是否合法 axy=9; plxy=1; system(cls); cout 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4endl; for(i=0;i=14;i+) if(i!=0) coutendl; couti%10; for(j=0;j=14;j+) coutoutstraij; coutendl;/画出棋盘显示落子位置 if(panduan1(x,y,1)=0)/判断是否构成结束游戏的条件 player2(); if(panduan1(c,d,2)=0)/判断是否构成结束游戏的条件 cout请player1输入要落子的位置:; else coutplayer2获胜endl;break; /输出玩家二获胜 跳出循环结束游戏 else coutplayer1获胜endl;break;/输出玩家一获胜 跳出循环结束游戏elsecout输入错误请重新输入;/当输入的落子位置不合法时重新输入void game_st2()/以规则二开始游戏 system(cls); int i,j,x,y; cout 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4endl; for(i=0;i=14;i+) if(i!=0) coutendl; couti%10; for(j=0;j=14;j+) coutoutstraij; coutendl;/画棋盘 coutxy) if(plxy=0 & x=0 & x=0 & y=14)/判断输入的落子位置是否合法 axy=9; plxy=1; system(cls); cout 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4endl; for(i=0;i=14;i+) if(i!=0) coutendl; couti%10; for(j=0;j=14;j+) coutoutstraij; coutendl;/画出棋盘显示落子位置 if(panduan2(x,y,1)=0)/判断是否构成结束游戏的条件 player2(); if(panduan2(c,d,2)=0)/判断是否构成结束游戏的条件 cout请player1输入要落子的位置:; else coutplayer2获胜endl;break; /输出玩家二获胜 跳出循环结束游戏 else coutplayer1获胜endl;break; /输出玩家一获胜 跳出循环结束游戏elsecout输入错误请重新输入;/当输入的落子位置不合法时重新输入int panduan2(int x,int y,int sum ) /以规则二开始游戏时判断是否构成结束游戏的条件 int m,n,b,c,lianzi=0; for(m=-1;m=1;m+) for(n=-1;n=1;n+) if(m!=0 | n!=0) for(b=1,c=2;b=9,c=0&x+b*m=0&y+b*n=0&x+c*m=0&y+c*n=0& x+b*m=0&y+b*

温馨提示

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

评论

0/150

提交评论