2022年贪吃蛇详细设计说明书 .pdf

上传人:H****o 文档编号:40225096 上传时间:2022-09-08 格式:PDF 页数:15 大小:446.73KB
返回 下载 相关 举报
2022年贪吃蛇详细设计说明书 .pdf_第1页
第1页 / 共15页
2022年贪吃蛇详细设计说明书 .pdf_第2页
第2页 / 共15页
点击查看更多>>
资源描述

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

1、1 贪吃蛇 _详细设计说明书编写人:完成日期:X年 X月 X日文档名称:详细设计规格说明书名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 15 页 -项目名称:贪吃蛇游戏项目负责人:XXX XXX编写 TEST _X_年_X_月_X_ 日校对所有小组成员 _2015_年_6_月_13_日审核所有小组成员 _2015_年_6_月_13_日批准 XXX _2015_年_6_月_14_日开发单位 _XXX班_ 组员:XXX XXX 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 15 页 -1 目录1.引言.21.1编写目的 .21.2背景.21.3定义.21.4参考资料

2、 .32.系统的结构.42.1 每个模块的名称、标识符如下所示:.42.2模块之间的关系:.53模块 1(标识符)设计说明 .63.1模块描述 .63.2功能.73.3性能.73.4输入项 .83.5输出项 .83.6设计方法(算法).83.7流程逻辑 .11 3.8接口.12 3.9存储分配 .12 3.10注释设计 .12 3.11限制条件 .12 3.12测试计划 .13 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 15 页 -2 3.13尚未解决的问题 .13 1.引言1.1 编写目的本说明书在概要设计的基础上,对贪吃蛇游戏的各模块、程序、子系统分别进行了实现层面上的

3、要求和说明。软件开发小组的产品实现人员阅读和参考本说明进行代码的编写和测试。本说明书预期的读者是软件开发小组的产品实现人员。1.2 背景说明:系统名称:贪吃蛇游戏任务提出者:手机策划人员开发者:软件开发小组的产品实现人员用户:Android 操作系统手机用户运行该程序系统的计算中心:Android 操作系统手机芯片1.3 定义1.节:一条蛇可以看成由许多正方形的“小格子”拼凑成,称名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 15 页 -3 作节。节是蛇身上最小的单位。2.链表:用来保存每一段的状态,链表的元素单位是节。且链表的第一个元素表示蛇的头部。3.坐标系:以左上角那点为

4、(0,0),向右则 x 递增,向下则y 递增1.4 参考资料1.软件工程导论张海藩 著清华大学出版社2.数据库系统原理教程刘韬 著人民邮电出版社3.C程序设计谭浩强清华大学出版社4.成功的软件开发(原书第二版)(蔡愉祖、邓本江等译)机械工业出版社)5.实用软件文档写作肖刚著清华大学出版社6.计算器的电路设计及算法研究D.邱钊.电子科技大学,2011.7.基于 Java EE 的网络销售系统的设计与实现D.刘丹.湖南大学,2012 8 需求规格说明书软件开发小组2015/4 9 用户操作手册(初稿)软件开发小组2015/5 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 15 页

5、-4 2.系统的结构2.1 每个模块的名称、标识符如下所示:1.Ground 类1)private int TYPE;2)public int rocks=new intGlobal.WIDTHGlobal.HEIGHT;3)public void setGround(int type)根据不同的Type 值将rocks的不同下标的元素设为1,其他元素为 0。4)public boolean isSnakeEatRock(Snake snake)判 断 蛇 头的所在的位置在数组rocks中的值是否为 1,如果是 1,则表示蛇吃到了石头,返回TRUE,否则返回 FALSE。5)public Po

6、int getPoint()产生一组随机数(x,y),是食物的坐标6)public void drawMe(Graphics g)将数组 rocks 中值为1的元素填充为石头颜色。2.Snake类:1)public static int x,y;2)private int oldDirection,newDirection;用于判断newDirection和 oldDirection 是否为相反方向,用于选取有效方向。3)private Point oldTail;用于判断蛇头是否和蛇身的某个节点的坐标重合,即蛇是否吃到自己。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 15

7、页 -5 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(Graphics g)/把属于蛇的格子画出来9)private class SnakeDriver implements Runnable/蛇不停走动3.Foo

8、d类:1)public void drawMe(Graphics g)根据产生的一组随机坐标,在其坐标处画出食物4.Controller 类:功能:处理按键事件及鼠标点击事件,处理逻辑。根据不同的情况向 Snake,Food,Ground发出不同的命令。实现接口 snake Moved,蛇每移动一步,就要判断一次,蛇是否吃到石头、是否吃到自己,是的话就snake.die()并停止计时;不是则不进行任何操作。如果吃到食物,就要加分、重画食物、蛇身加长。实现(N)New Game功能、(E)Exit 功能、(R)Resume功能、(L)Low Level 功能、(H)High Level 功能、(

9、P)Pause功能。5.Game Panel 类:功能:画出 Snake,Food,Ground,并实现重新显示。2.2 模块之间的关系:名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 15 页 -6 3模块 1(标识符)设计说明3.1 模块描述1.目的和意义:该部分以窗体上的按钮或键盘上的快捷键为用户提供友好的控制手段。为工作量繁大的用户提供一个简单而有趣的小游戏。2.特点说明:1)程序交互性好,操作性强。2)易操作。简单而有趣。Ground Snake Food Controller Game panel 重新显示处理按键事件处理逻辑根据不同情况向Ground、Snake、F

10、ood 发出指令触发按键事件名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 15 页 -7 3)功能全面,如:开始新游戏、暂停、继续、设置初级、设置高级、查看历史成绩、查看游戏说明、退出游戏。4)对于每次不可选的按钮设置为灰显,避免了用户的错误操作。3.2 功能3.3 性能本游戏在设计方面本着方便、实用及娱乐性高的宗旨,在对界New Game Pause Resume Low Level High Level Exit snake.start();food.newFood();time.newTime();从文件中读取历史分数记录停止计时,将石头、食物、等级、分数、时间、蛇每个节

11、点的坐标信息保存到文件中去文件中读取石头、食物、等级、分数、时间、蛇每个 节点的坐标信息snake.start();time.newTime();food.newFood(food)设定 Type 值为 2,set Ground(Type);改变蛇移动的时间间隔设定Type 值为1,setGround(Type);改变蛇移动的时间间隔System.exit(0);时间分数记录信息游戏结束名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 15 页 -8 面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。游戏主界面应该力求美观,赏心悦目。游戏控制模块应做到

12、易懂、易操作,而且准确率高,不易出错。3.4 输入项用户的按钮操作,如点击 New Game、Pause、Resume、Low Level、High Level、High Score、Description、Exit。或者选择键盘上的方向键和游戏设置的快捷键。快捷键有:N(New Game)、P(Pause)、R(Resume)、L(Low Level)、H(High Level)、S(High Score)、D(Description)、E(Exit)。3.5 输出项时间、分数,以及将石头、食物、等级、分数、时间、蛇每个节点的坐标信息。3.6 设计方法(算法)1.蛇、石头、食物的表示方法:把

13、显示区看做一个大大的表格,里面的格子就是组成蛇的基本单位,一个格子就表示一块石头或代表一个事物。几个连在一起的格子就可以代表一条蛇。使用坐标来区分这些格子。名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 15 页 -9 2.蛇的移动方式蛇每移动一步,可以看做蛇头增加一个节点,蛇尾删去一个节点。去掉蛇头新蛇头3.保存蛇的数据结构因为要区分蛇头和蛇尾,这就要求这个数据结构是有序的,还要经常的访问最后一个和第一个节点,所以Link List 最适合。移动前移动后原来的第二个节点旧蛇头名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 15 页 -10 4.蛇的移动方向根据

14、原来蛇头的坐标和方向计算新蛇头的坐标5.格子的坐标和像素坐标由于画蛇、食物、石头我们只是填充一个矩形,或者在相应位置显示一张图片,所以我们要知道每个格子的坐标。名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 15 页 -11 3.7 流程逻辑New Game Pause?Is Snake Eat Food?Draw:Food,Snake,Ground Start Timer,Snake Move Is Snake Eat Food?Is Snake Eat Food?Snake.pause=True Timer.Close ResumeSnake.pause=False Tim

15、er.Start Snake,.Add Last Add Score New Food Snake.Die Draw:Food,Snake,Ground,Snake Move Game OverNo Yes No No Yes Yes No Yes Yes 名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 15 页 -12 3.8 接口Snake Listener:Void SankeMoved(Snake)3.9 存储分配该游戏软件运行时,Snake、Food、Ground 三个对象一致同时存在,直到戏结束。其中蛇移动方法长期占用资源,改变方向、吃到食物及石头都是瞬发动作,只是

16、瞬间占用系统资源。3.10 注释设计Snake类中1)private int oldDirection,newDirection;用于判断newDirection和 oldDirection 是否为相反方向,用于选取有效方向。2)private Point oldTail;用于判断蛇头是否和蛇身的某个节点的坐标重合,即蛇是否吃到自己。3)Private bool life=TRUE;进程的控制条件3.11 限制条件1.每个选项 New Game、Pause、Resume、Low Level、High Level、Exit 不能连续点击。2.每次要点击 Exit 退出游戏才能保存游戏。3.所运行

17、机器必须装有JVM 名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 15 页 -13 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 鹰相应改变 石头的布局及蛇移动的时间间隔。3.13 尚未解决的问题由于水平有限,可能最终只能完成该游戏的部分功能,一些复杂的问题有待研究。名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 15 页 -

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

当前位置:首页 > 技术资料 > 技术总结

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

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