贪吃蛇游戏-概要设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《项目名称》概要设计说明书
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()获得食物纵坐标