欢迎来到天天文库
浏览记录
ID:19513192
大小:142.10 KB
页数:19页
时间:2018-10-03
《课程设计贪吃蛇_1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程设计报告课程名称:面向对象程序设计C++设计题目:贪吃蛇专业:计算机科学与技术姓名:学号:指导教师:李晓虹2015年12月25日1、系统需求分析贪吃蛇游戏是一款娱乐性很高的游戏,而且简单。可以放松精神而且风格多样,并且程序简单易懂。在语言的使用方面,大多数人喜欢用C语言来实现,该课程要求用C++来拿实现,所以我的目标是用C++来实现简单易学的贪吃蛇游戏。C++语言很好的结合了C语言的优势,C++是一门面向对象的编程语言,用C++来实现人机交互方便快捷。C++具有了其他语言所不具备的很多优势。比如:(1)C++是一门面向对象的语言,相对于C语言
2、而言,C语言更面向的是过程。C++的运行速度会比C语言更快,这也是为什么很多程序员选择用C++来开发游戏的原因。(2)C++语言的层次结构,逻辑结构明确,类的封装,继承和实现等都是面向对象的有力证明。2、总体设计2.1程序的运行(1)打开作业文件,后缀名为.cpp,并且运行该程序(2)程序运行后,将出现黑色面板和贪吃蛇活动区域,在游戏开始前会有对玩家相应的提示,例如提示玩家按任意键开始游戏,按指定键对贪吃蛇进行移动等。(3)按任意键开始后,用四个键来控制贪吃蛇的移动,并且在面板的右侧显示玩家的当前分数,如果碰到墙和与自己相交,游戏自动结束(4)空
3、格键暂停,o键加速,p键进行减速3、详细设计3.1开始界面设计图3-13.2游戏进行界面图3-23.3游戏结束显示界面图3-3总体上的游戏界面简洁明了,分为三个区域。贪吃蛇活动范围区域,玩家友情提示区域,和游戏状态显示区域。其中主要涵盖的思想:对象蛇和食物应该作为全局变量出现在程序里面,蛇的方向的操控和食物是否被吃等判断。其中涵盖的具体游戏的实现,准则是蛇撞到墙就算游戏失败,或者贪吃蛇与自身相交游戏失败。3.4、游戏的框架流程图如下图所示,分为开始游戏,游戏进行和游戏终止,其中的玩家友情提示界面和游戏得分状态界面始终在整个游戏进程中,玩家开始游戏
4、,进行游戏,游戏结束三个进程中,程序会给出不同的友情提示。得分状态和食物状态将随着游戏的进行的状态的不同而不同。草图如下所示图3-44、系统调试#include#include#include#include#include---------à该include使用当前的时间作为种子#include以上为引入的文件。#defineWIDTH40-------à定义宽度40#defineHEIGH12-------->定义高度12以上为
5、定义的宽度和高度的变量。enumdirection{LEFT,//左RIGHT,//右UP,//上DOWN//下};设置方向为枚举变量,并且定义贪吃蛇的移动方向为上下左右。structFood{//食物intx;inty;};/*Node进行蛇身的绘制,通过变量x,和y来进行绘制*/structNode{//画蛇身intx;inty;structNode*next;//next为下一个指针};/*接下来是对贪吃蛇的属性的描述包括贪吃蛇的长度和蛇所要前进的方向*/structSnake{//蛇属性intlenth;//长度enumdirection
6、dir;//方向};structFood*food;//食物structSnake*snake;//蛇属性structNode*snode,*tail;//蛇身intSPEECH=200;intscore=0;//分数intsmark=0;//吃食物标记inttimes=0;intSTOP=0;voidInitfood();//产生食物voidInitsnake();//构造snakevoidEatfood();//头部前进voidAddnode(intx,inty);//增加蛇身voiddisplay(structNode*shead);//显
7、示蛇身坐标voidmove();//蛇移动voiddraw();//画蛇voidHomepage();//主页voidkeybordhit();//监控键盘按键voidAddtail();//吃到食物/*接下来是对游戏中蛇所对应的光标的定位光标的显示应该是在蛇的左下方所以光标横坐标要在蛇本身横坐标的基础上-1纵坐标要在蛇本身的纵坐标基础上-1*/voidgotoxy(intx,inty)//定位光标{COORDpos;pos.X=x-1;pos.Y=y-1;SetConsoleCursorPosition(GetStdHandle(STD_OUT
8、PUT_HANDLE),pos);}/*接下来是构造snake贪吃蛇*/voidInitsnake()//构造snake{inti;sn
此文档下载收益归作者所有