课程设计贪吃蛇_2

课程设计贪吃蛇_2

ID:21072753

大小:98.00 KB

页数:32页

时间:2018-10-19

课程设计贪吃蛇_2_第1页
课程设计贪吃蛇_2_第2页
课程设计贪吃蛇_2_第3页
课程设计贪吃蛇_2_第4页
课程设计贪吃蛇_2_第5页
资源描述:

《课程设计贪吃蛇_2》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、课程设计报告课程名称:面向对象程序设计C++设计题目:贪吃蛇专业:计算机科学与技术姓名:学号:指导教师:李晓虹2015年1月10日1贪吃蛇游戏内容摘要1目前,以计算机技术和网络技术为核心的现代网络技术已在现实生活和生产中得以广泛的使用,休闲类网络游戏集趣味性,娱乐性,互动性和益智性于一体,已经成为多数人群的休闲方式。电脑游戏经过短短30年的发展,已经成为影响公众生活,改变公众娱乐方式的重要产业。过去,人们主要是借助电影、电视、音乐等方式来娱乐。而今天,以游戏为代表的电子娱乐正在成为主流娱乐方式。游戏也正在迅速成长为一个庞大的1引言贪吃蛇是家喻户晓的益智类小游戏,选择这个题

2、目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的制作方法对于以前的我而言都是很神秘的。我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力。因此我选定了这个题目。322系统需求分析2.1用户功能该贪吃蛇小游戏面向各个人群,用户群体不限年龄。2.2功能包括:贪吃蛇的移动;食物的管理;分数的管理;系统维护。2.3功能描述:贪吃蛇的移动包括:按w上移  按a左移  按s下移  按d右移。分数管理:当蛇通过移动吃掉一次食物的时候,就增加

3、10分,并且蛇身增加一个#的长度。系统维护:当用户没有按下键的时候,蛇自动向下移动,直到遇到*为止,游戏结束。2.4数据流图1.系统数据流图:32开始移动蛇,往食物方向前进是否吃到食物是否吃到身体结束蛇身体长度增加是否是否开始开始开始3总体设计3.1软件主要功能设计实现蛇的上下移动,当蛇吃到东西时身体的长度增加一个#并且分数加10分,实现当蛇吃掉一个食物后另一个食物位置的随机出现。当蛇继续移动碰到*后,结束游戏。4详细设计4.1函数声明structsnake/*蛇的结构体定义*/{32inthead,tail,body[200],length;};voidinit()/*

4、蛇身体的初始化*/{T.head=T.tail=0;//T.length=0;memset(T.body,0,sizeof(T.body));}voidwww()/*蛇向上运动的处理*/{intsum,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%1

5、00]=-1;i++;i%=ML;32}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食物的设计32确定用点数组存储贪吃蛇以后,贪吃蛇的食物如何达到随机出现,并且能够按照网格式与蛇头

6、无偏差相接就是一个亟待解决的问题。随机出现应采用rand()函数来实现,而食物与蛇头无偏差相接则利用坐标来解决。设置两个整型变量m_qnX,m_qnY作为食物出现的点的坐标,令m_qnX=rand()%30,,m_qnY=rand()%40即可。使随机出现的点能够整除最小网格,也就是使食物与蛇头无偏差相接。再由食物坐标(m_qnX,m_qnY)与蛇头坐标是否相同判断蛇是否“吃”到了食物,设置判断标签qnTag,如果吃到了,qnTag为1,则再出现下一个食物,反之,如果没吃到,则不出现食物直到标签为1为止。最后,再将(m_qnX,m_qnY)赋给m_qnFood作为食物坐标

7、,以便在其他函数中调用。4.3判断刷新时间while(clock()-start<=TM&&!kbhit())判断时间是否到了刷新界面时间,以及判断按下按键,如果按下则退出循环4.4处理clickingif(kbhit()&&(order=getch(),order=='w'

8、

9、order=='s'

10、

11、order=='a'

12、

13、order=='d'))4.5头文件#include#include#include#include#include

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

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

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