版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C语言课程设计报告(项目:贪吃蛇)学号:姓名: 课程设计题目:贪吃蛇游戏专业班级:核工程与核技术4班报告人姓名: 学号: 同组组长: 同组其他成员: 课程教师: 实验地点:95101实验室完成起止日期:2011年3月7日至2011年3 月15日一、课程设计概述(目的、任务、开发环境、参考资料)课程目的:1.熟悉二维数组的应用2.图形库文件中图形函数的使用3.通过游戏程序增加编程兴趣,提高编程水平课程任务:1.数组元素为结构体的数组应用2.全局变量应用3.按键处理 4.数组元素与蛇食物对应关系 5.图形方式开发环境:turbo C参考资料:C语言课程设计案例精编郭翠英 等编著 中国水利水电出版
2、社二、项目的可行性研究 项目流程图三、项目设计的基本原理和采用的主要方法与技术1.项目流程图2.graphics.h库函数中的 矩形函数rectangle()等图形函数的应用3.二维数组的应用4.按键控制5.全局变量四、本人实现项目的过程与步骤 1.画出项目流程图(如上图)2.写出主函数的整个运行过程3.整理函数运行过程中所需要的函数及定义如:(1).矩形图形函数rectangle() (2).定义蛇和实物的二维数组结构体struct Snake int xN; int yN; int node; int direction; int life;snake; (3).按键定义#define L
3、EFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011b4.定义各函数,分配功能void Init(void);图形驱动void Close(void);图形结束void DrawK(void);开始画面void GameOver(void);游戏结束void GamePlay(void);游戏过程void PrScore(void);输出成绩 5.各函数的编辑 开始画面函数(画围墙) 游戏过程函数(蛇移动的算法 蛇吃食物的算法 按键算法等) 游戏结束及成绩输出函数 6.定义与各函数
4、的整合嵌入7.编译调试 8.对程序的扩展功能的调整9.完成实验报告五、个人遇到的困难与获得的主要成果(一)遇到的主要主要困难1.程序结构的理解 由于长时间对C语言与数据结构没有接触,使我们对这些有一些相对陌生,主要是二维数组的引用以及循环的控制方面,如: (1) for(i=snake.node-1;i>0;i-)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/ snake.xi=snake.xi-1; snake.yi=snake.yi-1; (2)for(i=3;i<snake.node;i+)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/
5、if(snake.xi=snake.x0&&snake.yi=snake.y0) GameOver();/*显示失败*/ snake.life=1; break; 2.graphics.h图形库函数的陌生 第一次接触graphics.h库函数,对其一无所知通过查阅资料找到graphics.h库函数中几个关键函数的功能及用法。 如:setcolor(int color);定义线型等颜色rectangle(int left, int top, int right, int bottom);画矩形 等。 3.图形函数中的坐标在屏幕中的位置图形库函数是以坐标来实现的,它与通用坐标不同,
6、以屏幕左上角为原点以像素为单位长度的,如图。(x+I,y) (x,y) (x,y+i)4.按键的处理 按键的处理也是第一次接触,对其不是很了解后来通过程序找到其中关键 第一步,按键定义 #define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011b第二步,方向定义/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/switch(snake.direction) case 1:snake.x0+=10;break; case 2: snake.x0-=1
7、0;break; case 3: snake.y0-=10;break; case 4: snake.y0+=10;break; 第三步,按键与控制方向联系else if(key=UP&&snake.direction!=4)/*判断是否往相反的方向移动*/ snake.direction=3; else if(key=RIGHT&&snake.direction!=2) snake.direction=1; else if(key=LEFT&&snake.direction!=1)snake.direction=2; elseif(key=DO
8、WN&&snake.direction!=3) snake.direction=4; (二)获得主要成果 1.对上述难的解决(解决过程上面已给出) 2.对此程序的熟悉,进而进行一些改进 如,可以根据rectangle函数改变蛇和实物的大小;可以去掉围墙以屏幕循环模式,来降低游戏难度等3.对面上结构程序设计方法的进一步理解,可以通过发散思维,进而理解编写其他程序六、测试与运行记录1.程序载入turbo C2.编译执行3.处理编译过程中的句法错误(略)4.程序运行过程调试5.根据修改一些指令来修改程序的运行过程如:等。6.程序完成七、课程设计完成结果分析与个人小结 1.结果分析 程序最终运行成功,程序共一个for循环的关键语句控制蛇的移动关键算法,if语句实现了蛇吃实物生长的算法,以switch和几个if语句共同完成了按键控制算法。几个算法在程序实现起到了关键作用,后面通过图形库函数对围墙 蛇 食物的形状做了制作,在加上几个成绩输出图形显示等函数通过最终的整合嵌入共同完成了这个结构化的程序设计。 2.个人总结通过此程序,我做成了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电机学课件-清华大学
- 2024年全新装修设计合作协议2篇
- 广西大学附属中学消防讲座课件张琳敏课件
- 房屋担保租赁合同(2篇)
- 2024年互联网租赁平台自行车退租退款及押金返还协议3篇
- 2025年贵州货运从业资格考试模拟考试题库及答案解析
- 2025年福州货运从业资格试题答案解析
- 2025年武汉货运从业资格证考试模拟考试题及答案
- 2025年克拉玛依b2考货运资格证要多久
- 2025年塔城货运资格证培训考试题
- 征地补偿款分配申诉书范文(通用11篇)
- 《生活和生产中的力学》练习考试题库(参考200题)
- 建筑工程质量管理体系培训讲义
- 钢结构及旧楼加固施工方案施工组织设计
- 消防检测应急预案3篇
- 14S501-1 球墨铸铁单层井盖及踏步施工
- 停工窝工索赔案例
- Python数据科学方法与实践(山东联盟)智慧树知到答案章节测试2023年山东师范大学
- 阿里数字商业知识图谱构建及开放
- 土地增值税税源明细表(从事房地产开发的纳税人清算适用、从事房地产开发的纳税人按核定征收方式清算适用、纳税人整体转让在建工程适用)
- hsk5-成语学习知识
评论
0/150
提交评论