贪吃蛇实验报告.doc

贪吃蛇实验报告.doc

ID:56204350

大小:137.00 KB

页数:19页

时间:2020-03-20

贪吃蛇实验报告.doc_第1页
贪吃蛇实验报告.doc_第2页
贪吃蛇实验报告.doc_第3页
贪吃蛇实验报告.doc_第4页
贪吃蛇实验报告.doc_第5页
资源描述:

《贪吃蛇实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《计算机程序设计》课程设计报告课题名称贪吃蛇游戏班级学号姓名指导教师设计时间至设计地点常熟理工学院计算机科学与工程学院目录1需求分析12系统分析和设计12.1数据结构的设计和选择的理由12.2系统模块划分和模块结构22.3流程图32.4数据类型、全局变量和函数说明33程序测试和运行结果44课程报告小结54.1分数重叠显示54.2速度太快54.3食物可能出现在蛇身上5附录A:程序源代码61需求分析【阐述课程设计应该完成的功能】使用键盘的上下左右,来控制蛇的运动方向,ESC键退出,并显示得分。2系统分析和设计2.1数据结构的设计和

2、选择的理由本游戏中涉及的主要数据结构是如何表示运动的蛇、食物状态等问题。2.1.1从游戏参考画面中我们可以看到,贪吃蛇的身体是一节节的,由一个个大小相同的方块组成,那么我们可以用一个(x,y)坐标为左上角的、固定宽度的正方形来表示一节蛇身。为表示连续的多节身体,那么我们可以采用数组(或链表,或线性表)等数据结构来表示。下面以数组方式为例:structPoint{   intx,y;}structPointnodes[MAX_LENGTH]; //蛇身数组,MAX_LENGTH为最大蛇长贪吃蛇是在不断的运动的,我们研究蛇的运动可

3、以发现这样的特点:1.蛇头由键盘控制,键盘不操作时,保持原有方向运动;(用intdirection;表示)2.运动时,蛇身后面一节移动到前面一节的位置。当我们用nodes[0]表示蛇头的时候,nodes[1]运动到nodes[0]处;nodes[2]运动到nodes[1]处...。3.吃到一个食物以后,蛇身会增加一节。即该数组中的有效数据个数加一。(用intlength;表示)根据上面的情况,我们可以设计蛇的数据结构如下:structSnake{  structPointnodes[MAX_LENGTH]; //蛇身数组,保存

4、每节蛇身的坐标。MAX_LENGTH为最大蛇长   intlength;   //当前蛇长   intdirection;//蛇头运动方向   intlive;     //蛇活的,还是已经死了?}2.1.2关于食物,有两个属性:1.坐标位置2.状态:存在,或被吃。故我们用以下结构表示:structFood{   structPointposition; //食物的位置   intexist;            //存在?还是被吃?}2.2系统模块划分和模块结构voidmain(){init();/*初始化*/l=1;wh

5、ile(l)/*循环游戏*/{select();/*游戏速度和结束的选择菜单*/gamePlay();/*游戏主程序*/}close();/*关闭游戏*/}2.3流程图2.4数据类型、全局变量和函数说明2.4.1数据类型structPoint{/*一个存放点坐标的结构体*/intx,y;/*被多个结构体调用的基本参数,所以统一用point结构体来表示*/};structSnake{/*用来模拟蛇状态的结构体*/structPointnodes[MAX_LENGTH];/*用来存放蛇每一节的位置*/intlength;/*蛇长*

6、/intdirection;/*蛇移动的方向*/intlive;/*蛇是否活着*/}snake;/*比较形象的把蛇抽象为一个数据类型*/structFood{/*用来模拟食物状态的结构体*/structPointposition;/*食物的位置*/intexist;/*食物是否存在*/}food;2.4.2全局变量Score\得分left,top,right,bottom\游戏区域范围lastx,lasty\用来保存最后一节蛇的位置keyCode\用来保存按下的键2.4.3函数说明voidinit(void);\初始

7、化程序,给一些初始值赋值voidgamePlay(void);\游戏主循环voidclose(void);\关闭游戏voiddrawWall(void);\画墙voidcreateFood(void);\创造一个食物voiddrawFood(void);\画出食物voiddrawSnake(void);\画出蛇voiddrawScore(void);\画出分数inttouchWall(void);\判断是否碰到墙inttouchSelf(void);\判断是否碰到自己voidgameOver(void);\

8、游戏结束voidmoveSnake(void);\移动蛇intoppositeDirection(intkeyCode);\判断是否方向有误intfoodEat(void);\判断是否吃到食物voidexpandSnake(void);\把蛇增长一节3程序测试和运行结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。