预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

rtf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机 查看。 C语言课程设计报告 题目:贪吃蛇游戏 专业:业:级:班级:号:学号:名:姓名:指导老师:指导老 师:绩:成绩:设计日期:设计日期: 目 录 《C语言课程设计》报告1语言课程设计》题目:题目:贪吃蛇游戏13一 、选题背景4二、设计思路四、程序流程图5五、原程序清单5六、程序运行结 果1112七、设计总结14八、教师评语 一、选题背景 C语言实际上已经成为了中级语言的事实上的标准,如果你从事嵌入式开发、芯 片设计等,C语言是必须懂的基础;在高级语言上,C语言的简练和精确也具备特殊的 优势;VC的强大在Windows平台上其它语言更是难与之相匹敌,在Unix/Linux平台上 ,C语言也是最终要的语言,Linux的内核也主要是以C语言写的。当然C语言也有缺 点:就是难,容易出错,因为它的数据类型需要精确,而导致不够深入理解的程序员 常容易犯错。通过本学期对C语言的学习,掌握了C语言的基本语法,能编一些小程序 。通过这次实习,结合C++语言,编写了著名的贪吃蛇游戏,目的提高自己的编程水 平。 二、设计思路 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体, 身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇 不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方 向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定 蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这 时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多 一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆 盖矩形块。为了便于理解,定义两个结构体:食物与蛇 三、主要问题的解决方法和关键技术 .通过随机函数产生随机数,控制游戏过程食物的出现;.定义键盘操作,控制游 戏过程蛇的移动方向;.画出边界,并判断游戏是否结束;.统计游戏过程蛇吃的食 物数量,计算并输出游戏成绩。 四、程序流程图 五、原程序清单 #include<windows.h>#include<ctime>#include#include<vector>#in clude<queue>usingnamespacestd;#ifndefSNAKE_H#defineSNAKE_HclassC mp{ friendclassCsnake;intrSign;//横坐标intlSign;//竖坐标public: //friendboolisDead(constCmp&cmp);Cmp(intr,intl){setPoint(r,l);}Cm p(){}voidsetPoint(intr,intl){rSign=r;lSign=l;}Cmpoperator-(constCmp &m)const{returnCmp(rSign-m.rSign,lSign-m.lSign);}Cmpoperator+(const Cmp&m)const{returnCmp(rSign+m.rSign,lSign+m.lSign);}};constintma xSize=5;//初始蛇身长度classCsnake{CmpfirstSign;//蛇头坐标Cmpsec ondSign;//蛇颈坐标CmplastSign;//蛇尾坐标CmpnextSign;//预备蛇头intr ow;//列数intline;//行数intcount;//蛇身长度vector<vector<char>>sn akeMap;//整个游戏界面queue<Cmp>snakeBody;//蛇身public:intGetDirectio ns()const;chargetSymbol(constCmp&c)const//获取指定坐标点上的字符{re turnsnakeMap[c.lSign][c.rSign];}Csnake(intn)//初始化游戏界面大小{if (n<20)line=20+2;elseif(n>30)line=30+2;elseline=n+2;row=line*3+2; }boolisDead(constCmp&cmp){return(getSymbol(cmp)=='@'||cmp.r page1 Sign==row-1||cmp.rSign==0||cmp.lSign==line-1||cmp.lSign==0); }voidInitInstance();//初始化游戏界面boolUpdataGame();//更新游戏界面 voidShowGame();//显示游戏界面};#endif//SNAKE_Husing