版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、贪吃蛇_详细设计说明书编写人: 完成日期 :X年X月X日文档名称: 详细设计规格说明书项目名称:贪吃蛇游戏 项目负责人:XXX XXX 编写 TEST _X_年_X_月_X_日 校对 所有小组成员 _2015_年_6_月_13_日 审核 所有小组成员 _2015_年_6_月_13_日 批准 XXX _2015_年_6_月_14_日 开发单位 _XXX班_组员: XXX XXX目录1.引言21.1编写目的21.2背景21.3定义21.4参考资料32.系统的结构42.1 每个模块的名称、标识符如下所示:42.2模块之间的关系:53模块1(标识符)设计说明63.1模块描述63.2功能73.3性能73
2、.4输入项83.5输出项83.6设计方法(算法)83.7流程逻辑113.8接口113.9存储分配123.10注释设计123.11限制条件123.12测试计划123.13尚未解决的问题131.引言1.1编写目的本说明书在概要设计的基础上,对贪吃蛇游戏的各模块、程序、子系统分别进行了实现层面上的要求和说明。软件开发小组的产品实现人员阅读和参考本说明进行代码的编写和测试。 本说明书预期的读者是软件开发小组的产品实现人员。1.2背景说明: 系统名称:贪吃蛇游戏 任务提出者:手机策划人员 开发者:软件开发小组的产品实现人员 用户:Android操
3、作系统手机用户 运行该程序系统的计算中心:Android操作系统手机芯片1.3定义 1. 节: 一条蛇可以看成由许多正方形的“小格子”拼凑成,称作节。节是蛇身上最小的单位。 2. 链表:用来保存每一段的状态,链表的元素单位是节。且链表的第一个元素表示蛇的头部。 3. 坐标系: 以左上角那点为(0,0),向右则x递增,向下则y递增1.4参考资料1.软件工程导论 张海藩著清华大学出版社2.数据库系统原理教程 刘 韬著人民邮电出版社3.C程序设计 谭浩强 清华大学出版社4.成功的软件开发(原书第二版)(蔡愉祖、邓本江等译)
4、 机械工业出版社)5.实用软件文档写作 肖刚著 清华大学出版社6.计算器的电路设计及算法研究D. 邱钊. 电子科技大学,2011.7.基于Java EE的网络销售系统的设计与实现D. 刘丹.湖南大学,20128 需求规格说明书 软件开发小组 2015/49 用户操作手册(初稿)软件开发小组 2015/52.系统的结构2.1 每个模块的名称、标识符如下所示:1. Ground类1) private int TYPE; 2) public int rocks=new intGlobal.WIDTHGlobal.HEI
5、GHT; 3) public void setGround(int type) 根据不同的Type值将rocks的不同下标的元素设为1,其他元素为0。 4) public boolean isSnakeEatRock(Snake snake) 判断蛇头的所在的位置在数组rocks中的值是否为1,如果是1,则表示蛇吃到了石头,返回TRUE,否则返回FALSE。 5) public Point getPoint() 产生一组
6、随机数(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是否为相反方向,用于选取有效方向。
7、;3) private Point oldTail; 用于判断蛇头是否和蛇身的某个节点的坐标重合,即蛇是否吃到自己。 4) public LinkedList<Point> body=new LinkedList<Point>(); 5) public void die() 设置变量life=FALSE;使控制进程的条件为假,进程结束。 6) public void move()
8、0;实现蛇身沿着蛇头的轨迹移动 7) public void changeDirection(int direction) 根据方向键,改变蛇头的x、y的值,即改变方向 8) public void drawMe(Graphics g)/把属于蛇的格子画出来 9) private class SnakeDriver implements Runnable/蛇不停走动 3. Food类: 1
9、) public void drawMe(Graphics g) 根据产生的一组随机坐标,在其坐标处画出食物 4 .Controller类: 功能:处理按键事件及鼠标点击事件,处理逻辑。根据不同的情况向Snake,Food,Ground发出不同的命令。 实现接口snake Moved,蛇每移动一步,就要判断一次,蛇是否吃到石头、是否吃到自己,是的话就snake.die()并停止计时;不是则不进行任何操作。如果吃到食物, 就要加分、重画食物、蛇身加长。 实现(N)New Game功能、(E
10、)Exit功能、(R)Resume功能、(L)Low Level功能、(H)High Level功能、(P)Pause功能。 5 .Game Panel类: 功能:画出Snake,Food,Ground,并实现重新显示。2.2模块之间的关系:ControllerGround重新显示Game panel触发按键事件处理按键事件Snake处理逻辑根据不同情况向Ground、Snake、Food发出指令Food3模块1(标识符)设计说明3.1模块描述1. 目的和意义: 该部分以窗体上的按钮或键盘上的快捷键为用户提供友好的控制手段。为工作量繁大的用户提供一
11、个简单而有趣的小游戏。 2. 特点说明: 1) 程序交互性好,操作性强。 2) 易操作。简单而有趣。 3) 功能全面,如:开始新游戏、暂停、继续、设置初级、设置高级、查看历 史成绩、查看游戏说明、退出游戏。 4) 对于每次不可选的按钮设置为灰显,避免了用户的错误操作。3.2功能New GamePauseResumeLow LevelHigh LevelExitsnake. start();food. newFood();time.newTime(); 从文件中读取历史分数记录时间分数停
12、止计时,将石头、食物、等级、分数、时间、蛇每个节点的坐标信息保存到文件中去文件中读取石头、食物、等级、分数、时间、蛇每个 节点的坐标信息snake .start();time.newTime();food.newFood(food)记录信息设定Type值为1,setGround(Type);改变蛇移动的时间间隔 游戏结束设定Type值为2,set Ground(Type);改变蛇移动的时间间隔 System. exit(0);3.3性能 本游戏在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。
13、 游戏主界面应该力求美观,赏心悦目。游戏控制模块应做到易懂、易操作,而且准确率高,不易出错。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输出项时间、分数,以及将石头、食物、等级、分数、时间、蛇每
14、个节点的坐标信息。3.6设计方法(算法)1. 蛇、石头、食物的表示方法: 把显示区看做一个大大的表格,里面的格子就是组成蛇的基本单位,一个格子就表示一块石头或代表一个事物。几个连在一起的格子就可以代表一条蛇。使用坐标来区分这些格子。2. 蛇的移动方式 蛇每移动一步,可以看做蛇头增加一个节点,蛇尾删去一个节点。移动前去掉蛇头移动后新蛇头原来的第二个节点旧蛇头3. 保存蛇的数据结构 因为要区分蛇头和蛇尾,这就要求这个数据结构是有序的,还要经常的访问最后一个和第一个节点,所以Link List最适合。4. 蛇的移动方向根据原来蛇头的坐标和方向计算新蛇头的坐标5.
15、格子的坐标和像素坐标 由于画蛇、食物、石头我们只是填充一个矩形,或者在相应位置显示一张图片,所以我们要知道每个格子的坐标。3.7流程逻辑New GameDraw: Food, Snake, Ground Start Timer, Snake MoveYesPause?Snake. pause=True Timer. CloseNoResume?YesYesIs Snake Eat Food?Snake. pause=False Timer. StartSnake, .Add Last Add Score New FoodNoIs Snake Eat Food?
16、YesNoYesIs Snake Eat Food?Snake .DieNoDraw: Food, Snake, Ground ,Snake MoveGame Over3.8接口 Snake Listener: Void SankeMoved(Snake)3.9存储分配该游戏软件运行时,Snake、Food、Ground三个对象一致同时存在,直到戏结 束。其中蛇移动方法长期占用资源,改变方向、吃到食物及石头都是瞬发动作,只是瞬间占用系统资源。3.10注释设计Snake类中 1) private int
17、 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. 所运行机器必须装有JVM3.12测试计划1. 对这几个主要功能NewGame、Pause、Resume、LowLevel、HighLevel、Exit逐个进行测试。 2. 由于程序较小,测试时间预计为1小时。 3. 预期的结果: 1) 在开始游戏后,按键盘上的方向键蛇会相应的改变方向。 2) 吃掉食物后蛇身的长度
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环氧地坪漆工程合同范本
- 2024年度企业间广告发布协议3篇
- 2024年度工程建筑设计风险评估与控制合同2篇
- 艺术品展览合作合同
- 2024年度学校官方网站建设与维护合同2篇
- 美容美发店与顾客的2024年度会员服务合同
- 保教评估指南测试题
- 2024权许可使用及分成合同2篇
- 2024年度工程废料绿色运输合作协议3篇
- 2024版水电工程承包商服务合同3篇
- 5.2细胞的能量“货币”ATP第1课时课件-高一上学期生物人教版必修1
- 心脑血管疾病的课件
- 第六章 计划及其制订
- 高中物理 选修一《机械振动》大单元教学设计
- 排水管道检测项目总体实施方案样本
- 金属材料购销合同
- 地铁车站保洁培训课件
- 中药热奄包在骨质疏松症中的应用研究
- 职务侵占知识产权案例
- 《铁路三横五纵》课件
- 老年人综合能力评估操作
评论
0/150
提交评论