- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计贪吃蛇_2
PAGE 1课 程 设 计 报 告 课程名称:面向对象程序设计C++ 设计题目:贪吃蛇 专 业:计算机科学与技术 姓 名: 学 号: 指导教师:李 晓 虹2015 年 1 月 10 日贪吃蛇游戏内容摘要PAGE 31开 题 报 告 1 -目前,以计算机技术和网络技术为核心的现代网络技术已在现实生活和生产中得以广泛的使用,休闲类网络游戏集趣味性,娱乐性,互动性和益智性于一体,已经成为多数人群的休闲方式。电脑游戏经过短短30年的发展,已经成为影响公众生活,改变公众娱乐方式的重要产业。过去,人们主要是借助电影、电视、音乐等方式来娱乐。而今天,以游戏为代表的电子娱乐正在成为主流娱乐方式。游戏也正在迅速成长为一个庞大的1引言贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的制作方法对于以前的我而言都是很神秘的。我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力。因此我选定了这个题目。2系统需求分析2.1用户功能该贪吃蛇小游戏面向各个人群,用户群体不限年龄。2.2功能包括:贪吃蛇的移动;食物的管理;分数的管理;系统维护。2.3功能描述:贪吃蛇的移动包括:按w上移??按a左移??按s下移??按d右移。分数管理:当蛇通过移动吃掉一次食物的时候,就增加10分,并且蛇身增加一个#的长度。系统维护:当用户没有按下键的时候,蛇自动向下移动,直到遇到*为止,游戏结束。2.4数据流图系统数据流图:开始移动蛇,往食物方向前进开始移动蛇,往食物方向前进是否吃到食物是否吃到身体结束蛇身体长度增加是否是否开始开始开始开始开始开始3总体设计3.1软件主要功能设计 实现蛇的上下移动,当蛇吃到东西时身体的长度增加一个#并且分数加10分,实现当蛇吃掉一个食物后另一个食物位置的随机出现。当蛇继续移动碰到*后,结束游戏。4详细设计4.1函数声明struct snake /*蛇的结构体定义*/{ int head,tail,body[200],length;};void init() /*蛇身体的初始化*/{ T.head=T.tail=0;// T.length=0; memset(T.body,0,sizeof(T.body));}void www() /*蛇向上运动的处理*/ { int sum,i; sum=T.body[(T.head-1+ML)%ML]-100; if(map[sum/100][sum%100]==1) { T.length++; T.body[T.head++]=sum; T.head%=ML; map[sum/100][sum%100]=0; for(i=T.tail;i!=T.head;) { sum=T.body[i]; map[sum/100][sum%100]=-1; i++; i%=ML; } while(1) { sum=getnum(); if(map[sum/100][sum%100]==0) { map[sum/100][sum%100]=1; break; } } for(i=T.tail;i!=T.head;) { sum=T.body[i]; map[sum/100][sum%100]=0; i++; i%=ML; } } else { T.body[T.head++]=sum; T.head%=ML; T.tail=(++T.tail)%ML; }}4.2食物的设计确定用点数组存储贪吃蛇以后,贪吃蛇的食物如何达到随机出现,并且能够按照网格式与蛇头无偏差相接就是一个亟待解决的问题。随机出现应采用rand()函数来实现,而食物与蛇头无偏差相接则利用坐标来解决。设置两个整型变量m_qnX,m_qnY作为食物出现的点的坐标,令m_qnX= rand()%30, ,m_qnY= rand()%40即可。使随机出现的点能够整除最小网格,也就是使食物与蛇头无偏差相接。再由食物坐标(m_qnX,m_qnY)与蛇头坐标是否相同判断蛇是否“吃”到了食物,设置判断标签qnTag,如果吃到了,qnTag为1,则再出现下一个
文档评论(0)