- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
贪吃蛇小游戏需求分析
“贪吃蛇”游戏需求分析
一、需求分析:
贪吃蛇游戏是一个小型益智游戏,它可以锻炼人们的反应能力,尤其是在开发人的智力方面,很受人们的欢迎。本组该次小游戏程序设计包含二维数组、鼠标操作及图形化函数等方面知识。
具体需求概要如下:
1.初始化游戏界面为600*600大小,并于坐标为(250,250)处显示游戏名称“贪吃蛇”,等待鼠标响应以开始游戏;
2.在程序中用格子初始蛇长及蛇的位置,用W、S、A、D控制方向为上下左右进行游戏。游戏过程中,每吃到一次食物用For循环使蛇移动的speed增加,分数加10,蛇长加一格;
3.蛇头咬到蛇尾or蛇头接触活动区域外围则Game over,显示累计分数,游戏结束。
二、运行环境:
该课程设计在设计与实验过程中需要在windows XP系统/windows 2000以上系统中进行,程序设计要求在visual C++6.0平台中进行,完成代码的编写、编译、调试、测试等工作。本游戏对计算机硬件和操作系统要求极低,所以在这里只是把自己的电脑硬件参数和系统参数列下: 操作系统:windows xp 软件环境:安装VC++6。
三、设计概要:
1.初始化模块:屏幕初始化,屏幕初始化用于显示游戏信息“贪吃蛇”;
2.游戏界面模块:设计绿色的边框,边框内用黑色无框格子填充作为游戏活动区域;
3.游戏运行模块:运用函数控制蛇长及食物的关系,并使用键盘控制方向;
4.判断模块:头咬到尾或头接触活动区域外围,则游戏结束,显示累计分数。
四、详细设计及实现:
1.流程图(函数调用关系图)
2.预处理
#includestdio.h
#includestdlib.h
#includegraphics.h
#includedos.h
#includeconio.h
#includetime.h
3.数据结构
IMAGE wal;
MOUSEMSG m;
typedef struct
{
int x[40];
int y[40];
int derection;
int food;
int foodx;
int foody;
int size;
} snake;
snake s;
4.全局变量
int score=0,speed=300;
5.函数声明
void init(void);
void wall(void);
void food(void);
void gameover(void);
int food1(void);
void snakes(void);
void draw(void);
6.算法设计
main函数:
具体实现程序功能。
调用的函数 函数功能 init 初始化绘图环境 food 随机产生食物位置,判断是否进食,增加蛇长 draw 画出蛇体状态及食物位置 snakes 蛇体及速度变化,运动方向的选择 gameover 判断游戏是否终止,显示分数 init函数:
给结构体snake 赋初值:
s.x[0]=25; 蛇体第一格初始位置的横坐标
s.y[0]=20; 蛇体第一格初始位置的纵坐标
s.x[1]=24; 蛇体第二格初始位置的横坐标
s.y[1]=20; 蛇体第二格初始位置的纵坐标
s.x[2]=23; 蛇体第三格初始位置的横坐标
s.y[2]=20; 蛇体第三格初始位置的纵坐标
s.derection=1; 蛇运动的初始方向定义为1
s.food=0; 未吃食前食物的数量为0
s.size=3; 蛇的初始长度为3个格子
初始化绘图环境为600*600像素的区域;在(250.250)处显示游戏标题“贪吃蛇”;等待操作者提供鼠标信息以开始游戏;开始游戏后,用绿色边框显示活动区域。
调用的函数 函数功能 initgraph 初始化绘图环境 outtextxy 在当前位置输出字符串“贪吃蛇” GetMouseMsg 获取一个鼠标信息;若无,则一直等待 cleardevice 清屏 wall 画出活动区域及边框
food函数、food1函数:
调用函数rand使计算机产生随机数,以获得食物的随机位置。
调用的函数 函数功能 rand 获得一个随机数
food1 判断蛇是否吃到食物,若吃到则return 1,
回到food函数中的do-while循环,再次随机生成食物位置;否则return 0,food调用结束。
draw函数:
绘出蛇体及食物,蛇体边框绘制为亮蓝色,食物边框为红色;并在(0.0)处显示“score:__”(当前得分)。
调用的函数 函数功能 setcolor 设置蛇体为蓝色设置食物为红色 rectangle 根据数组s.
文档评论(0)