




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言课程设计姓名:学号:专业:软件工程班级:3班指导教师:编写日期:2015/6/25一、需求分析1、程序的输入与输出:只需通过键盘“上”,“下”,“左”,“右”移动光标在棋盘上的位置,“p”键下子,“q”键悔棋进行人人对战。2、程序的系统功能:(1)五子棋;(2)、根据需要提供对图书所需的查询方式。二、系统总体设计1问题:(1)建立棋盘:如何跟简便的建立棋盘;(2)玩家操作如何移动光标;(3)如何在各个方向上检查是否有五个棋子连接;解决方法:用许多“+”符号连接起来构成简便棋盘,下棋时只需将棋子覆盖到“+”完成下子;printf("●");}else{jilu();printf("○");}gotoxy(weizhi.x,weizhi.y);}}3、systemsystem("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背景。判断胜负intcheckWin()//检查游戏是否有输赢{intp;intr,c,rr,cc,count=0;p=player==0?2:1;for(c=0;c<20;c++){for(r=0;r<20;r++){if(Q[r][c]!=p)continue;//检查列rr=r;cc=c;while(--cc>=0&&Q[rr][cc]==p)count++;cc=c;while(++cc<20&&Q[rr][cc]==p)count++;cc=c;if(count+1>=5)returnp;//检查行count=0;while(--rr>=0&&Q[rr][cc]==p)count++;rr=r;while(++rr<20&&Q[rr][cc]==p)count++;rr=r;if(count+1>=5)returnp;//检查反斜边count=0;cc--;rr--;while((cc>=0||rr>=0)&&Q[rr][cc]==p){count++;cc--;rr--;}rr=r;cc=c;cc++;rr++;while((cc<20||rr<20)&&Q[rr][cc]==p){count++;cc++;rr++;}rr=r;cc=c;if(count+1>=5)returnp;count=0;//检查正斜边count=0;cc++;rr--;while((cc<20||rr>=0)&&Q[rr][cc]==p){count++;cc++;rr--;}rr=r;cc=c;cc--;rr++;while((cc>=0||rr<20)&&Q[rr][cc]==p){count++;cc--;rr++;}rr=r;cc=c;if(count+1>=5)returnp;count=0;}}return0;}四、程序运行结果测试与分析1.棋盘光标移动判断胜负五、结论与心得这次课程设计完成了五子棋的主体设计,基本实现了五子棋的核心要求,另外在构建棋盘时用到了创新的思路,更加简便的完成了棋盘的建立。程序的总体设计较为简单,并没有用到许多复杂的语句等,其所用的语句如:for,while,switch,case.....都是C语言基础的语句,比较适合阅读。在设计程序的过程中,我们遇到了许多困难,比如建立棋盘时遇到了错误,于是我们小组成员通过上网查阅资料的方式解决了问题。但是,这个程序有一个待改进的地方就是该游戏只能人与人对战而不能人机对战,所以在单人时缺乏可玩性,我想我们小组一定会在往后的学习中努力
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论