当前位置:文档之家› 贪吃蛇游戏-概要设计

贪吃蛇游戏-概要设计

《项目名称》概要设计说明书
2010-01
目录
1 概述 (1)
1.1 编写目的 (1)
2 需求概述 (1)
2.1 目标与需求 (1)
2.2 环境描述 (1)
3 总体设计 (1)
3.1 总体解决方案 (1)
3.1.1 软件体系结构 (1)
3.1.1.1显示层类图 (2)
3.1.1.2控制层类图 (2)
3.1.1.3业务层类图 (2)
3.1.1.4实体层类图 (2)
3.1.2控制层顺序图 (3)
3.1.3显示层顺序图 (4)
4 接口设计 (4)
4.1 内部接口设计 (4)
1 概述
1.1 编写目的
本文档的编写目的是:详细定义贪吃蛇游戏的总体功能;给出系统的结构设计,作为过程设计和程序编写的依据。

2需求概述
2.1 目标与需求
在游戏中,玩家操控一条蛇,它会不停前进,玩家只能操控蛇的头部朝向(上下左右),吃掉食物,并要避免触碰到自身或者墙壁。

每次贪食蛇吃掉一件食物,它的身体便增长一些,蛇的身体越长,游戏得分越高,直到蛇碰到墙壁或者自身时候,游戏结束。

2.2 环境描述
jre1.5版本或以上
Windows xp
3 总体设计
3.1 总体解决方案
设计贪吃蛇时采用面向对象的设计方法。

3.1.1 软件体系结构
整个贪吃蛇游戏由显示层、控制层、业务层、实体层组成。

软件体系结构图如下。

图1软件体系结构图
显示层:将蛇、食物、墙通过加载相应的图片形式化显示出来。

控制层:接收键盘事件,调用相关事件处理方法,以及计算游戏分数等方法实体层:包含蛇、食物、墙数据(坐标,长度等)
业务层:具体的事件处理方法,以及对实体层数据进行更新的具体方法
以下为各层的核心类。

3.1.1.1显示层类图
parse
图2显示层类图
显示层只有一个边界类parse。

3.1.1.2控制层类图
mainProcess
图3控制层类图
控制层只有一个mainProcess一个控制类。

3.1.1.3业务层类图
keyPressed
图4业务层类图
业务层只有一个类keyPressed。

3.1.1.4实体层类图
图5实体层类图
包含Food、Snake和Wall 3个实体类。

3.1.2控制层顺序图
图6控制层顺序图
当捕获到键盘事件时控制层的mainProcess将事件以消息的方式传给业务层的keyPressed类,此时keyPressed从实体层的Snake类和food类中获取数据,之后判断是否可以继续前进,如果判断出蛇可以前进,更新实体层Snake类和Food类中的属性。

3.1.3显示层顺序图
: Snake : Wall : Food
图7显示层顺序图
当Timer触发时候,显示层的parse类查询实体类中的Snake类、Wall类、Food类中坐标数据,之后使用贴图(图片)将它们显示出来。

4 接口设计
4.1 内部接口设计
这里规定了实体层的Snakelei和Food类两个类的接口,有助于之后对游戏的扩展。

4.1.2Snake类接口
void move()蛇根据当前前进方向前进
int getLength()获得蛇程度
boolean eat()蛇吃掉食物,自身长度增加
boolean hit()判断蛇是否撞到自己
4.1.2Food类接口
int getPosX()获得食物横坐标
int getPosY()获得食物纵坐标。

相关主题