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

上传人:b****6 文档编号:3861961 上传时间:2022-11-25 格式:DOCX 页数:9 大小:567.59KB
下载 相关 举报
贪吃蛇详细设计说明书.docx_第1页
第1页 / 共9页
贪吃蛇详细设计说明书.docx_第2页
第2页 / 共9页
贪吃蛇详细设计说明书.docx_第3页
第3页 / 共9页
贪吃蛇详细设计说明书.docx_第4页
第4页 / 共9页
贪吃蛇详细设计说明书.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

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

《贪吃蛇详细设计说明书.docx》由会员分享,可在线阅读,更多相关《贪吃蛇详细设计说明书.docx(9页珍藏版)》请在冰豆网上搜索。

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

贪吃蛇详细设计说明书

贪吃蛇_详细设计说明书

 

编写人:

完成日期:

X年X月X日

文档名称:

详细设计规格说明书

项目名称:

贪吃蛇游戏

项目负责人:

XXXXXX

编写TEST__X___年_X_月___X_日

校对所有小组成员__2015___年___6__月___13_日

审核所有小组成员____2015_年___6__月___13_日

批准XXX_2015____年___6__月___14__日

开发单位__XXX班_____

组员:

XXXXXX

 

1.引言

1.1编写目的

本说明书在概要设计的基础上,对贪吃蛇游戏的各模块、程序、子系统分别进行了实现层面上的要求和说明。

软件开发小组的产品实现人员阅读和参考本说明进行代码的编写和测试。

 

本说明书预期的读者是软件开发小组的产品实现人员。

1.2背景

说明:

 

系统名称:

贪吃蛇游戏 

任务提出者:

手机策划人员 

开发者:

软件开发小组的产品实现人员 

用户:

Android操作系统手机用户 

运行该程序系统的计算中心:

Android操作系统手机芯片

1.3定义

1. 节:

 一条蛇可以看成由许多正方形的“小格子”拼凑成,称作节。

节是蛇身上最小的单位。

 

2. 链表:

用来保存每一段的状态,链表的元素单位是节。

且链表的第一个元素表示蛇的头部。

 

3.坐标系:

 以左上角那点为(0,0),向右则x递增,向下则y递增

1.4参考资料

1.《软件工程导论》张海藩著清华大学出版社

2.《数据库系统原理教程》刘韬著人民邮电出版社

3.《C程序设计》谭浩强清华大学出版社

4.《成功的软件开发》(原书第二版)(蔡愉祖、邓本江等译)机械工业出版社)

5.《实用软件文档写作》肖刚著清华大学出版社

6.计算器的电路设计及算法研究[D].邱钊.电子科技大学,2011.

7.基于JavaEE的网络销售系统的设计与实现[D].刘丹.湖南大学,2012

8.需求规格说明书《》软件开发小组2015/4

9.用户操作手册(初稿)《》软件开发小组2015/5

 

2.系统的结构

2.1每个模块的名称、标识符如下所示:

1.Ground类

1) private int TYPE; 

2) public int[][] rocks=new int[Global.WIDTH][Global.HEIGHT];

 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(){} 产生一组随机数(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; 用于判断蛇头是否和蛇身的某个节点的坐标重合,即蛇是否吃到自己。

 

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. Food类:

 

1) public void drawMe(Graphics g){} 根据产生的一组随机坐标,在其坐标处画出食物 

4 .Controller类:

 

功能:

处理按键事件及鼠标点击事件,处理逻辑。

根据不同的情况向Snake,Food,Ground发出不同的命令。

 实现接口snakeMoved,蛇每移动一步,就要判断一次,蛇是否吃到石头、是否吃到自己,是的话就snake.die()并停止计时;不是则不进行任何操作。

如果吃到食物,就要加分、重画食物、蛇身加长。

 实现(N)NewGame功能、(E)Exit功能、(R)Resume功能、(L)LowLevel功能、(H)HighLevel功能、(P)Pause功能。

 

5 .GamePanel类:

 功能:

画出Snake,Food,Ground,并实现重新显示。

2.2模块之间的关系:

 

3.模块1(标识符)设计说明

3.1模块描述

1.目的和意义:

 

该部分以窗体上的按钮或键盘上的快捷键为用户提供友好的控制手段。

为工作量繁大的用户提供一个简单而有趣的小游戏。

 

2. 特点说明:

 

1) 程序交互性好,操作性强。

 

2) 易操作。

简单而有趣。

 

3) 功能全面,如:

开始新游戏、暂停、继续、设置初级、设置高级、查看历史成绩、查看游戏说明、退出游戏。

 

4) 对于每次不可选的按钮设置为灰显,避免了用户的错误操作。

3.2功能

3.3性能

本游戏在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。

 游戏主界面应该力求美观,赏心悦目。

游戏控制模块应做到易懂、易操作,而且准确率高,不易出错。

3.4输入项

用户的按钮操作,如点击NewGame、Pause、Resume、LowLevel、HighLevel、 HighScore、Description、Exit。

或者选择键盘上的方向键和游戏设置的快捷键。

快捷键有:

N(NewGame)、P(Pause)、R(Resume)、L(LowLevel)、H(HighLevel)、 S(HighScore)、D(Description)、E(Exit)。

3.5输出项

时间、分数,以及将石头、食物、等级、分数、时间、蛇每个节点的坐标信息。

3.6设计方法(算法)

1.蛇、石头、食物的表示方法:

 

把显示区看做一个大大的表格,里面的格子就是组成蛇的基本单位,一个格子就表示一块石头或代表一个事物。

几个连在一起的格子就可以代表一条蛇。

使用坐标来区分这些格子。

2.蛇的移动方式 蛇每移动一步,可以看做蛇头增加一个节点,蛇尾删去一个节点。

 

移动前

去掉

蛇头

移动后

新蛇头

 

3.保存蛇的数据结构 

因为要区分蛇头和蛇尾,这就要求这个数据结构是有序的,还要经常的访问最后一个和第一个节点,所以LinkList最适合。

4.蛇的移动方向

根据原来蛇头的坐标和方向计算新蛇头的坐标

 

5.格子的坐标和像素坐标 由于画蛇、食物、石头我们只是填充一个矩形,或者在相应位置显示一张图片,所以我们要知道每个格子的坐标。

 

3.7流程逻辑

 

3.8接口

SnakeListener:

    

Void SankeMoved(Snake)

3.9存储分配

该游戏软件运行时,Snake、Food、Ground三个对象一致同时存在,直到戏结束。

其中蛇移动方法长期占用资源,改变方向、吃到食物及石头都是瞬发动作,只是瞬间占用系统资源。

3.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

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尚未解决的问题

由于水平有限,可能最终只能完成该游戏的部分功能,一些复杂的问题有待研究。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1