- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言课程设计吃贪蛇游戏
山东交通学院C语言课程设计贪吃蛇游戏 院(系)别 交通与物流工程学院 班 级 物联131 学 号 130516122 姓 名 王赛 指导教师 徐成强 时 间 2014-06-09—2014-06-15 课 程 设 计 任 务 书题 目 贪吃蛇游戏 学 院 交通与物流工程学院 专 业 物联网工程 班 级 物联131学生姓名 王赛 学 号 130516122 6 月 9 日至 6月 15日 共 1周指导教师(签字)徐成强 院 长(签字) 2014年6月15日成 绩 评 定 表作品成绩报告成绩总评成绩目 录《C语言课程设计》报告1题目:贪吃蛇游戏1一、选题背景3二、设计思路4四、程序流程图5五、原程序清单5六、程序运行结果11七、设计总结12八、教师评语14一、选题背景C语言实际上已经成为了中级语言的事实上的标准,如果你从事嵌入式开发、芯片设计等,C语言是必须懂的基础;在高级语言上,C语言的简练和精确也具备特殊的优势;VC的强大在Windows平台上其它语言更是难与之相匹敌,在Unix/Linux平台上,C语言也是最终要的语言,Linux的内核也主要是以C语言写的。当然C语言也有缺点:就是难,容易出错,因为它的数据类型需要精确,而导致不够深入理解的程序员常容易犯错。通过本学期对C语言的学习,掌握了C语言的基本语法,能编一些小程序。通过这次实习,结合C++语言,编写了著名的贪吃蛇游戏,目的提高自己的编程水平。 二、设计思路程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇三、主要问题的解决方法和关键技术.通过随机函数产生随机数,控制游戏过程食物的出现;.定义键盘操作,控制游戏过程蛇的移动方向;. 画出边界,并判断游戏是否结束;. 统计游戏过程蛇吃的食物数量,计算并输出游戏成绩。四、程序流程图五、原程序清单#include windows.h #include ctime #include iostream #include vector #include queue using namespace std; #ifndef SNAKE_H #define SNAKE_H class Cmp { friend class Csnake; int rSign; //横坐标 int lSign; //竖坐标 public: // friend bool isDead(const Cmp cmp); Cmp(int r,int l){setPoint(r,l);} Cmp(){} void setPoint(int r,int l){rSign=r;lSign=l;} Cmp operator-(const Cmp m)const { return Cmp(rSign-m.rSign,lSign-m.lSign); } Cmp operator+(const Cmp m)const { return Cmp(rSign+m.rSign,lSign+m.lSign); } }; const int maxSize = 5; //初始蛇身长度 class Csnake { Cmp firstSign; //蛇头坐标 Cmp secondSign;//蛇颈坐标 Cmp lastSign; //蛇尾坐标 Cmp nextSign; //预备蛇头 int row; //列数 int line; //行数 int count; //蛇身长度 vectorvectorchar snakeMap;//整个游戏界面 queueCmp snakeBody; //蛇身 public: int GetDirections()const; char getSymbol(const Cmp c)const //获取指定坐标点上的字符 { return snakeMap[c.lSign][c.rSign]; } Csnake(int n) //初始化游戏界面大小 { if(n20)line=20+2; else if(n30)line=30+2; else line=n+2; row=line*3+2; } bool isDead(const Cmp
文档评论(0)