贪吃蛇游戏详细设计说明书.docx

上传人:h**** 文档编号:25709601 上传时间:2022-07-13 格式:DOCX 页数:9 大小:14.93KB
返回 下载 相关 举报
贪吃蛇游戏详细设计说明书.docx_第1页
第1页 / 共9页
贪吃蛇游戏详细设计说明书.docx_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《贪吃蛇游戏详细设计说明书.docx》由会员分享,可在线阅读,更多相关《贪吃蛇游戏详细设计说明书.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、贪吃蛇游戏详细设计说明书 详细设计说明书 1 引言 1.1 编写目的 本说明书在概要设计的基础上,对贪吃蛇游戏的各模块、程序、子系统分别进行了实现层面上的要求和说明。软件开发小组的产品实现人员阅读和参考本说明进行代码的编写和测试。 本说明书预期的读者是软件开发小组的产品实现人员。 1.2 背景 说明: 系统名称:贪吃蛇游戏 任务提出者:手机策划人员 开发者:软件开发小组的产品实现人员 用户:NOKIA手机用户 运行该程序系统的计算中心:NOKIA手机芯片 1.3 定义 1.节: 一条蛇可以看成由许多正方形的“小格子”拼凑成,称作节。节是蛇身上最小的单位。 2.链表: 用来保存每一段的状态,链表

2、的元素单位是节。且链表的第一个元素表示蛇的头部。 3.坐标系: 以左上角那点为(0,0),向右则x递增,向下则y递增。 1.4 参考资料 张海藩:软件工程导论第五版清华大学出版社 肖刚等:实用软件文档写作清华大学出版社 2 程序系统的组织结构 2.1每个模块和子程序的名称、标识符: 1Ground类: 1)private int TYPE; 2)public int rocks=new intGlobal.WIDTHGlobal.HEIGHT; 3)public void setGround(int type) 根据不同的Type值将rocks的不同下标的元素设为1,其他元素为0。 4)pub

3、lic boolean isSnakeEatRock(Snake snake) 判断蛇头的所在的位置在数组rocks中的值是否为1,如果是1,则表示蛇吃 到了石头,返回TRUE,否则返回FALSE。 5)public Point getPoint() 产生一组随机数(x,y),是食物的坐标 6)public void drawMe(Graphics g) 将数组rocks中值为1的元素填充为石头颜色。 2Snake类: 1)public static int x,y; 2)private int oldDirection,newDirection; 用于判断newDirection和oldDi

4、rection是否为相反方向,用于选取有效方向。 3)private Point oldTail; 用于判断蛇头是否和蛇身的某个节点的坐标重合,即蛇是否吃到自己。 4)public LinkedList body=new LinkedList(); 5)public void die() 设置变量life=FALSE;使控制进程的条件为假,进程结束。 6)public void move() 实现蛇身沿着蛇头的轨迹移动 7)public void changeDirection(int direction) 根据方向键,改变蛇头的x、y的值,即改变方向 8)public void drawMe

5、(Graphics g)/把属于蛇的格子画出来 9)private class SnakeDriver implements Runnable/蛇不停走动 3Food类: 1)public void drawMe(Graphics g) 根据产生的一组随机坐标,在其坐标处画出食物 4Controller类: 功能:处理按键事件及鼠标点击事件,处理逻辑。根据不同的情况向Snake,Food,Ground发出不同的命令。 实现接口snakeMoved,蛇每移动一步,就要判断一次,蛇是否吃到石头、是否吃到自己,是的话就snake.die()并停止计时;不是则不进行任何操作。如果吃到食物,就要加分、重

6、画食物、蛇身加长。 实现(N)NewGame功能、(E)Exit功能、(R)Resume功能、(L)LowLevel功能、(H)HighLevel功能、(P)Pause功能。 5GamePanel类: 功能:画出Snake,Food,Ground,并实现重新显示 2.2模块之间的关系: 3. 程序(标识符)设计说明 3.1. 程序描述 1.目的和意义: 该部分以窗体上的按钮或键盘上的快捷键为用户提供友好的控制手段。为工作量繁大的用户提供一个简单而有趣的小游戏。 2.特点说明: 1)程序交互性好,操作性强。 2)易操作。简单而有趣。 3)功能全面,如:开始新游戏、暂停、继续、设置初级、设置高级、

7、查看历 史成绩、查看游戏说明、退出游戏。 4)对于每次不可选的按钮设置为灰显,避免了用户的错误操作。 3.2. 性能 本游戏在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。 游戏主界面应该力求美观,赏心悦目。游戏控制模块应做到易懂、易操作,而且准确率高,不易出错。 3.3. 输入项 用户的按钮操作,如点击NewGame、Pause、Resume、LowLevel、HighLevel、HighScore、Description、Exit。或者选择键盘上的方向键和游戏设置的快捷键。快捷键有:N(NewGame)、P(P

8、ause)、R(Resume)、L(LowLevel)、H(HighLevel)、S(HighScore)、D(Description)、E(Exit)。 3.4. 输出项 时间、分数,以及将石头、食物、等级、分数、时间、蛇每个节点的坐标信息。 3.5. 功能 3.6. 算法 1. 蛇、石头、食物的表示方法: 把显示区看做一个大大的表格,里面的格子就是组成蛇的基本单位,一个格子就表示一块石头或代表一个事物。几个连在一起的格子就可以代表一条蛇。使用坐标来区分这些格子。 2. 蛇的移动方式 蛇每移动一步,可以看做蛇头增加一个节点,蛇尾删去一个节点。 3.保存蛇的数据结构 因为要区分蛇头和蛇尾,这就

9、要求这个数据结构是有序的,还要经常的访问最后一个和第一个节点,所以LinkList最适合。 4.蛇的移动方向 根据原来蛇头的坐标和方向计算新蛇头的坐标, 5.格子的坐标和像素坐标 由于画蛇、食物、石头我们只是填充一个矩形,或者在相应位置显示一张图片,所以我们要知道每个格子的坐标。 3.7. 流程逻辑 3.8. 接口SnakeListener: V oid SankeMoved(Snake); 3.9. 存储分配 该游戏软件运行时,Snake、Food、Ground三个对象一致同时存在,直到戏结束。其中蛇移动方法长期占用资源,改变方向、吃到食物及石头都是瞬发动作,只是瞬间占用系统资源。 3.10

10、. 注释设计 Snake类中 1)private int oldDirection,newDirection; 用于判断newDirection和oldDirection是否为相反方向,用于选取有效方向。 2)private Point oldTail; 用于判断蛇头是否和蛇身的某个节点的坐标重合,即蛇是否吃到自己。 3)Private bool life=TRUE;进程的控制条件 3.11. 限制条件 1.每个选项NewGame、Pause、Resume、LowLevel、HighLevel、Exit不能连续点击。 2.每次要点击Exit退出游戏才能保存游戏。 3.所运行机器必须装有JVM。

11、 3.12. 测试计划 1.对这几个主要功能NewGame、Pause、Resume、LowLevel、HighLevel、Exit逐个进行测试。 2.由于程序较小,测试时间预计为1小时。 3.预期的结果: 1)在开始游戏后,按键盘上的方向键蛇会相应的改变方向。 2)吃掉食物后蛇身的长度增加一节,分数增加。 3)蛇碰到石头或碰到自己后游戏结束。 4)选择Pause后,停止计时,蛇停止移动。 5)选择Resume后,蛇在Pause时的地方继续移动,时间继续计时。如果程序在Pause后, 选择了Exit,再次运行程序时,选择Resume,也可以继续上次的游戏。 6)选择LowLevel、HighLevel鹰相应改变石头的布局及蛇移动的时间间隔。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁