贪吃蛇小游戏需求分析.docx
《贪吃蛇小游戏需求分析.docx》由会员分享,可在线阅读,更多相关《贪吃蛇小游戏需求分析.docx(11页珍藏版)》请在冰豆网上搜索。
![贪吃蛇小游戏需求分析.docx](https://file1.bdocx.com/fileroot1/2023-1/9/896994de-8258-4695-8bcb-db7769bc7e39/896994de-8258-4695-8bcb-db7769bc7e391.gif)
贪吃蛇小游戏需求分析
“贪吃蛇〞游戏需求分析
一、需求分析:
贪吃蛇游戏是一个小型益智游戏,它可以锻炼人们的反响能力,尤其是在开发人的智力方面,很受人们的欢送。
本组该次小游戏程序设计包含二维数组、鼠标操作及图形化函数等方面知识。
具体需求概要如下:
1.初始化游戏界面为600*600大小,并于坐标为〔250,250〕处显示游戏名称“贪吃蛇〞,等待鼠标响应以开场游戏;
2.在程序中用格子初始蛇长及蛇的位置,用W、S、A、D控制方向为上下左右进展游戏。
游戏过程中,每吃到一次食物用For循环使蛇移动的speed增加,分数加10,蛇长加一格;
3.蛇头咬到蛇尾or蛇头接触活动区域外围那么Gameover,显示累计分数,游戏完毕。
二、运行环境:
该课程设计在设计与实验过程中需要在windowsXP系统/windows2000以上系统中进展,程序设计要求在visualC++6.0平台中进展,完成代码的编写、编译、调试、测试等工作。
本游戏对计算机硬件和操作系统要求极低,所以在这里只是把自己的电脑硬件参数和系统参数列下:
操作系统:
windowsxp软件环境:
安装VC++6。
三、设计概要:
1.初始化模块:
屏幕初始化,屏幕初始化用于显示游戏信息“贪吃蛇〞;
2.游戏界面模块:
设计绿色的边框,边框用黑色无框格子填充作为游戏活动区域;
3.游戏运行模块:
运用函数控制蛇长及食物的关系,并使用键盘控制方向;
4.判断模块:
头咬到尾或头接触活动区域外围,那么游戏完毕,显示累计分数。
四、详细设计及实现:
1.流程图〔函数调用关系图〕
2.预处理
#include
#include
#include
#include
#include
#include
3.数据构造
IMAGEwal;
MOUSEMSGm;
typedefstruct
{
作为蛇身体和头部格子的坐标
intx[40];
inty[40];
intderection;
intfood;
intfoodx;
intfoody;
蛇身体格子的个数,即蛇长
intsize;
}snake;
snakes;
4.全局变量
为分数赋初值0,为速度赋初值300
intscore=0,speed=300;
5.函数声明
voidinit(void);
voidwall(void);
voidfood(void);
voidgameover(void);
intfood1(void);
voidsnakes(void);
voiddraw(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
判断蛇是否吃到食物,假设吃到那么return1,
回到food函数中的do-while循环,再次随机生成食物位置;否那么return0,food调用完毕。
●draw函数:
绘出蛇体及食物,蛇体边框绘制为亮蓝色,食物边框为红色;并在〔0.0〕处显示“score:
__〞〔当前得分〕。
调用的函数
函数功能
setcolor
设置蛇体为蓝色&设置食物为红色
rectangle
根据数组s.x[40]、s.y[40]及s.size画出蛇体;
根据s.foodx、s.foody[及s.size画出食物位置
outtextxy
在当前位置输出字符串“score:
〞显示得分
●snakes函数:
用s.food〔进食判断标志〕判断蛇是否吃到食物,吃到那么蛇长〔限制蛇长<40格〕加一个格子,分数累加10,速度加快,并将s.food重置为0;s,direction判断蛇头格子移动的方向。
使用的构造体
Typedefstruct〔〕snake;snakes。
snakes函数
的功能
If语句:
判断蛇是否吃到食物〔蛇长<40格〕,吃到那么蛇长加一格,分数累加10,速度加快,并将s.food〔进食判断标志〕重置为0
Switch语句:
根据case1、case2、case3、case4判断s.direction〔WSAD=上下左右〕
●gameover函数
显示gameover提示信息,并输出玩家所得分数,完毕游戏进程。
调用的函数
函数功能
setcolor
设置字符串“score:
_〞为白色
outtextxy
在当前位置输出字符串“score:
_〞“gameover〞显示得分
cleardevice
清屏
GetMouseMsg
获取一个鼠标信息:
假设无,那么一直等待;假设有,那么exit,退出游戏。
五、测试及运行结果
六、成员分组:
程序构思及模块化、Main函数:
宋佳文
图形函数、Init函数、wall函数、gameover函数、:
马一菲宏旭
需求分析、Draw函数、Food函数、food1函数、snakes函数:
阮梦宇、莉