版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区深度搜索算法比较
- 本单元复习与测试教学设计-2025-2026学年初中英语七年级下册上海新世纪版
- 2026年泸州市龙马潭区社区工作者招聘笔试参考试题及答案解析
- 2026年河南省驻马店市城管协管招聘笔试备考题库及答案解析
- 2026年莆田市荔城区社区工作者招聘笔试参考题库及答案解析
- 第5课 云存储和分享教学设计小学信息技术重大版四年级下册-重大版
- 第16课 音乐之声-碰撞传感器的应用教学设计初中信息技术粤教清华版九年级下册-粤教清华版
- 2026年永州市芝山区社区工作者招聘考试参考试题及答案解析
- 2026年湖南省怀化市社区工作者招聘考试备考题库及答案解析
- 第4课 艺术标题有个性教学设计小学信息技术(信息科技)四年级下册人教版
- 2026年马克思主义理论题库练习备考题含完整答案详解【夺冠系列】
- GA 1817.1-2026学校反恐怖防范要求第1部分:普通高等学校
- 2026云南临沧市文化旅游产业发展集团有限公司招聘26人笔试备考试题及答案解析
- (2026年课件合集)人教版二年级数学下册全册教案(教学设计)
- 通信工程监理规范
- 2025年设计学博士招生面试题库及详细答案
- 2026校招:中国出口信用保险笔试题及答案
- 2025年广西机场管理集团有限责任公司第一批次招聘106人笔试参考题库附带答案详解
- DB44-T 2814-2026 城镇燃气用户端设施安全技术标准
- 台军知识课件
- 变电改扩建站安全课件
评论
0/150
提交评论