版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机程序设计基础(C 语言)课程设计题目:简易五子棋软件设计: 信息工程学院姓名:班级:指导教师签名2011 年 7 月 7 日北京任务书 总体设计 模块划分 算法说明 流程图 第3页第4页第第3页第4页第4页第4页第5页结论 第22 页体会及建议 第22 页参考文献 第23 页北京石油化工学院BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY北京石油化工学院BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY课程设计用纸第 第 页 共 23 页n1=0;n2=0;/* 垂直向上数*/for(j=x,k=y;k=1
2、;k-)if(statusjk=flag)n1+;elsebreak ;/* 垂直向下数*/for(j=x,k=y;k=5)return(1);/* 从左上方到右下方进行判断是否有5 个同色的圆*/n1=0;n2=0;/* 向左上方数*/for(j=x,k=y;(j=1)&(k=1);j-,k-)if(statusjk=flag)n1+;elsebreak;/* 向右下方数*/for(j=x,k=y;(j=15)&(k=5)return(1);/* 从右上方到左下方进行判断是否有5 个同色的圆*/n1=0;n2=0;/* 向右上方数*/for(j=x,k=y;(j=1);j+,k-)if(st
3、atusjk=flag)n1+;elsebreak;/* 向左下方数*/for(j=x,k=y;(j=1)&(k=5)return(1);return(0);/* 执行下棋函数*/void Done()int i ;int j ; TOC o 1-5 h z /* 根据不同的key 值进行不同的操作*/switch(key)/* 如果是向左移动的*/case LEFT:/* 如果下一步超出棋盘左边界则什么也不作*/if(step_x-1=1;i-)if(statusij=0)/* 每移动一步画一个圆,消除移动的过程*/DrawCircle(step_x,step_y,2);break ;if(
4、i15)/* 报警音乐 */sound(1000);/* 扬声器的发生时间,为1 秒钟 */delay(1000);nosound();break ;elsefor(i=step_x+1,j=step_y;i15)break ;step_x=i ;/* 根据不同的行棋者画不同颜色的圆*/JudgePlayer(step_x,step_y);/* 显示行棋一方是谁*/break ; TOC o 1-5 h z /* 如果是向下移动的*/case DOWN :/* 如果下一步超出棋盘下边界则什么也不作*/if(step_y+1)15)/* 报警音乐*/sound(1000);/* 扬声器的发生时间
5、,为1 秒钟 */delay(1000);nosound();break ;elsefor(i=step_x,j=step_y+1;j15)break ;step_y=j ;JudgePlayer(step_x,step_y);break ;/* 如果是向上移动的*/case UP :/* 报警音乐 */if(step_y-1)=1;j-)if(statusij=0)DrawCircle(step_x,step_y,2);break ;if(j=1&step_x=1&step_y=15)/* 按下确定键后,如果棋子当前位置的状态为0*/if(statusstep_xstep_y=0)/* 则更
6、改棋子当前位置的状态在flag , 表示是哪个行棋者行的棋*/statusstep_xstep_y=flag ;/* 如果判断当前行棋者获胜*/if(ResultCheck(step_x,step_y)=1)gotoxy(30,4);setbkcolor(BLUE); TOC o 1-5 h z /* 清除图形屏幕*/cleardevice();/* 为图形输出设置当前视口*/setviewport(100,100,540,380,1);/* 绿色实填充*/setfillstyle(1,2);setcolor(YELLOW);/* 画矩形 */rectangle(0,0,439,279);fl
7、oodfill(50,50,14);setcolor(12);settextstyle(1,0,5);/* 三重笔划字体, 水平放大5 倍 */outtextxy(20,20,Congratulation !);setcolor(15);settextstyle(3,0,4); TOC o 1-5 h z /* 如果是 Player1 获胜,显示获胜信息*/if(flag=1) /*无衬笔划字体, 水平放大5倍 */outtextxy(20,120,Player1 win the game !);WinMusic();/* 如果是 Player1 获胜,显示获胜信息*/if(flag=2) /
8、* 无衬笔划字体, 水平放大5 倍 */outtextxy(20,120,Player2 win the game !); WinMusic();setcolor(14);settextstyle(2,0,8);getch();exit(0);/* 如果当前行棋者没有获胜,则交换行棋方*/Alternation();/* 提示行棋方是谁*/ShowMessage(); break;else break ;/* 显示行棋方函数*/void ShowMessage()/* 轮到 Player1 行棋 */if(flag=1)setcolor(2);settextstyle(1,0,1);gotox
9、y(100,30);/* 覆盖原有的字迹*/outtextxy(100,30,Its turn to Player2 !);setcolor(12);settextstyle(1,0,1);outtextxy(100,30,Its turn to Player1 !);/* 轮到 Player2 行棋 */if(flag=2)setcolor(2);settextstyle(1,0,1);/* 覆盖原有的字迹*/outtextxy(100,30,Its turn to Player1 !);setcolor(12);settextstyle(1,0,1);gotoxy(100,20);outt
10、extxy(100,30,Its turn to Player2 !);/* 主函数 */int main()int gdriver;int gmode;int errorcode; TOC o 1-5 h z /* 清空文本模式窗口*/clrscr();/* 显示欢迎信息*/WelcomeInfo();gdriver=DETECT;gmode=0;/* 初始化图形系统*/initgraph(&gdriver,&gmode, d:tc);/* 设置 flag 初始值,默认是Player1 先行 */flag=1;/* 画棋盘 */DrawBoard();ShowMessage();dostep
11、_x=0 ;step_y=0 ;JudgePlayer(step_x-1,step_y-1); do TOC o 1-5 h z /* 如果没有键按下,则bioskey(1) 函数将返回0*/while(bioskey(1)=0);/* 获取从键盘按下的键值*/key=bioskey(0);/* 根据获得的键值进行下棋操作*/Done();while(key!=ENTER&key!=ESC);while(key!=ESC);/* 关闭图形系统*/closegraph();return 0;八 结论 :本次课程设计使我学到了很多东西, 当我独立将程序的主题写出来时, 我很高兴 , 因为这个程序不
12、象想象中的那么简单, 经过几次调试后, 我发现最出的程序虽然能运行 , 能实现预期目标, 但整个程序繁杂结构不清楚, 后与同学老师交流次程 TOC o 1-5 h z 序设计方法, 采纳了几个比较好的设计理念, 将整个程序进行了模块的细致划分,并整理 , 将住函数中的非自定义表达式语句大幅缩减。主函数中大量使用的是自定义函数调用,这样一来使主函数结构清晰。最终程序经过几次重大修改后变得更加人性化,增加了可操作性。我认为这次课程设计进行的很成功九 体会及建议:来讲通过这次综合应用程序的开发,我掌握了C语言程序设计的一些基本方法和常用算法,学会从实际应用出发来分析问题,进行软件规划和算法设计,逐步求精,熟悉软件设计的基本步骤。程序最终调试之后,我终于松了一口气,说实在的, 真的很累,实现规定的程序功能是最困难的,很多功能看似简单但做起来却异常困难。从构思到实现,从修改到完善,在老师的帮助下前后更改了许多地方。伴随着修改的同时,我的程序设计能力也在不断提高,程序设计思想
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黄埔区2025年第二次招聘社区专职工作人员备考题库及参考答案详解
- 美国本科面试技巧
- 安全事迹宣传集锦讲解
- 画室消防安全须知
- 消防安全培训实战指南
- 工厂安全算法优化讲解
- 深圳律师面试技巧
- 德语专业就业前景分析
- 安全数据来源分析讲解
- 隔离点消防安全制度
- 2025天津大学招聘15人备考考试试题及答案解析
- 2025年山西大地环境投资控股有限公司社会招聘116人备考题库有答案详解
- 2026元旦主题晚会倒计时快闪
- 物理试卷答案浙江省9+1高中联盟2025学年第一学期高三年级期中考试(11.19-11.21)
- 2025抖音流量生态深度解析:算法逻辑、爆流密码与运营实战全指南
- 2025至2030中国警用装备行业项目调研及市场前景预测评估报告
- 年生产一亿粒阿莫西林胶囊(0.25)
- 危重患者的早期识别
- 环泊酚注射液-临床用药解读
- 2023西方文化名著导读期末考试答案
- 老年人护理需求评估表
评论
0/150
提交评论