您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 贪吃蛇小游戏需求分析
“贪吃蛇”游戏需求分析一、需求分析:贪吃蛇游戏是一个小型益智游戏,它可以锻炼人们的反应能力,尤其是在开发人的智力方面,很受人们的欢迎。本组该次小游戏程序设计包含二维数组、鼠标操作及图形化函数等方面知识。具体需求概要如下: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.流程图(函数调用关系图)Main函数Init函数初始化绘图环境Food函数随机产生初始食物的位置Draw函数画出蛇体状态及食物位置Snakes函数蛇体及速度变化运动方向的选择Draw函数画出蛇体状态及食物位置Gameover函数游戏终止,显示分数Food函数判断有无进食Food1函数判断是否进食Wall函数画出活动区域及边框第一次调用,画初始状态Food1函数判断是否进食从此处Draw以后开始至结尾,函数均在一个For循环中调用。判断游戏若未结束判断游戏若已结束结束进入下一次循环2.预处理#includestdio.h#includestdlib.h#includegraphics.h#includedos.h#includeconio.h#includetime.h3.数据结构IMAGEwal;MOUSEMSGm;typedefstruct{intx[40];inty[40];intderection;intfood;intfoodx;intfoody;intsize;}snake;赋值0,1作为s.food的标志,以在for循环中判断上一个食物是否已被吃到;foodx和foody作为食物格子的横纵坐标。作为蛇身体和头部格子的坐标用于判断蛇身体格子的移动方向蛇身体格子的个数,即蛇长snakes;4.全局变量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判断游戏是否终止,显示分数为分数赋初值0,为速度赋初值300init函数:给结构体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;蛇运动的初始方向定义为1s.food=0;未吃食前食物的数量为0s.size=3;蛇的初始长度为3个格子初始化绘图环境为600*600像素的区域;在(250.250)处显示游戏标题“贪吃蛇”;等待操作者提供鼠标信息以开始游戏;开始游戏后,用绿色边框显示活动区域。food函数、food1函数:调用的函数函数功能initgraph初始化绘图环境outtextxy在当前位置输出字符串“贪吃蛇”GetMouseMsg获取一个鼠标信息;若无,则一直等待cleardevice清屏wall画出活动区域及边框调用函数rand使计算机产生随机数,以获得食物的随机位置。draw函数:绘出蛇体及食物,蛇体边框绘制为亮蓝色,食物边框为红色;并在(0.0)处显示“score:__”(当前得分)。snakes函数:用s.food(进食判断标志)判断蛇是否吃到食物,吃到则蛇长(限制蛇长40格)加一个格子,分数累加10,速度加快,并将s.food重置为0;s,direction判断蛇头格子移动的方向。调用的函数函数功能rand获得一个随机数food1判断蛇是否吃到食物,若吃到则return1,回到food函数中的do-while循环,再次随机生成食物位置;否则return0,food调用结束。调用的函数函数功能setcolor设置蛇体为蓝色&设置食物为红色rectangle根据数组s.x[40]、s.y[40]及s.size画出蛇体;根据s.foodx、s.foody[及s.size画出食物位置outtextxy在当前位置输出字符串“score:”显示得分使用的结构体Typedefstruct()snake;snakes。gameover函数显示gameover提示信息,并输出玩家所得分数,结束游戏进程。五、测试及运行结果snakes函数的功能If语句:判断蛇是否吃到食物(蛇长40格),吃到则蛇长加一格,分数累加10,速度加快,并将s.food(进食判断标志)重置为0Switch语句:根据case1、case2、case3、case4判断s.direction(WSAD=上下左右)调用的函数函数功能setcolor设置字符串“score:_”为白色outtextxy在当前位置输出字符串“score:_”“gameover”显示得分cleardevice清屏GetMouseMsg获取一个鼠标信息:若无,则一直等待;若有,则exit,退出游戏。六、成员分组:程序构思及模块化、Main函数:宋佳文图形函数、Init函数、wall函数、gameover函数、:马一菲张宏旭需求分析、Draw函数、Food函数、food1函数、snakes函数:阮梦宇、张莉
本文标题:贪吃蛇小游戏需求分析
链接地址:https://www.777doc.com/doc-1906371 .html