贪吃蛇详细设计说明书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贪吃蛇_详细设计说明书

编写人:

完成日期:X年X月X日

文档名称:详细设计规格说明书

1

项目名称:贪吃蛇游戏

项目负责人:XXX XXX

编写 TEST __X___年_X_月___X_日

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

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

批准 XXX _2015____年___6__月___14__日

开发单位 __XXX班_____

组员: XXX XXX

目录

1.引言 (2)

1.1编写目的 (2)

1.2背景 (2)

1.3定义 (2)

1.4参考资料 (3)

2.系统的结构 (4)

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

2.2模块之间的关系: (5)

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

3.1模块描述 (6)

3.2功能 (7)

3.3性能 (7)

3.4输入项 (8)

3.5输出项 (8)

3.6设计方法(算法) (8)

3.7流程逻辑 (11)

3.8接口 (12)

3.9存储分配 (12)

3.10注释设计 (12)

3.11限制条件 (12)

3.12测试计划 (13)

3.13尚未解决的问题 (13)

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.基于Java EE的网络销售系统的设计与实现[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.HEIGH

T];

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发出不同的命令。实现接口snake Moved,蛇每移动一步,就要判断一次,蛇是否吃到石头、是否吃到自己,是的话就snake.die()并停止计时;不是则不进行任何操作。如果吃到食物,就要加分、重画食物、蛇身加长。实现(N)New Game功能、(E)Exit功能、(R)Resume功能、(L)Low Level功能、(H)High Level功能、(P)Pause功能。

5 .Game Panel类:功能:画出Snake,Food,Ground,并实现重新显示。

2.2模块之间的关系:

相关文档
最新文档