




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、详细设计说明书1引言1.1编写目的本说明书在概要设计的基础上,对贪吃蛇游戏的各模块、程序、子系统分别进行了 实现层面上的要求和说明。软件开发小组的产品实现人员阅读和参考本说明进行代码的 编写和测试。本说明书预期的读者是软件开发小组的产品实现人员。1.2背景说明:系统名称:贪吃蛇游戏任务提出者:手机策划人员开发者:软件开发小组的产品实现人员用户:NOKIA手机用户运行该程序系统的计算中心:NOKIA手机芯片1.3定义1. 节:一条蛇可以看成由许多正方形的“小格子”拼凑成,称作节。节是蛇身上最小的单位。2. 链表:用来保存每一段的状态,链表的元素单位是节。且链表的第一个元素表示蛇的 头部。3. 坐
2、标系:以左上角那点为(0,0),向右则x递增,向下则y递增。1.4参考资料张海藩:软件工程导论第五版 活华大学出版社肖刚等:实用软件文档写作活华大学出版社2程序系统的组织结构2.1每个模块和子程序的名称、标识符:1 Ground 类:1) private int TYPE;2) public int rocks=new intGlobal.WIDTHGlobal.HEIGHT;3) public void setGround(int type)&根据不同的Type值将rocks的不同下标的元素设为1,其他元素为0。4) public boolean isSnakeEatRock(Sna
3、ke snake)&判断蛇头的所在的位置在数组rocks中的值是否为1,如果是1,则表示蛇吃 到了石头,返回TRUE否贝U返回FALSE5) 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)
4、private Point oldTail;用于判断蛇头是否和蛇身的某个节点的坐标重合,即蛇是否吃到自己。4) public LinkedList<Point> body=new LinkedList<Point>();5) public void die()设置变量life=FALSE ;使控制进程的条件为假,进程结束。6) public void move()实现蛇身沿着蛇头的小迹移动7) public void changeDirection(int direction)根据方向键,改变蛇头的x、y的值,即改变方向8) public void drawMe(Gra
5、phics g)/把届于蛇的格子画出来9) private class SnakeDriver implements Runnable/ 蛇不停走动3 Food 类:1) public void drawMe(Graphics g)根据产生的一组随机坐标,在其坐标处画出食物4 Controller 类:功能:处理按键事件及鼠标点击事件,处理逻辑。根据不同的情况向Snake,Food, Ground发出不同的命令。实现接口 snakeMoved ,蛇每移动一步,就要判断一次,蛇是否吃到石头、是 否吃到自己,是的话就snake.die()并停止计时;不是则不进行任何操作。 如果吃到食物,就要加分、
6、重画食物、蛇身加长。实现(N)NewGam呦能、(E) Exit 功能、(R) Resume功能、(L) LowLevel 功能、(H) HighLevel 功能、(P) Pause 功能。5 GamePane 啖:功能:画出Snake, Food, Ground,并实现重新显示2.2模块之间的关系:GroundSnake定时移动Food触及按貌W件3.程序(标识符)设计说明3.1. 程序描述1. 目的和意义:该部分以窗体上的按钮或键盘上的快捷键为用户提供友好的控制手段。为工作量繁大的用户提供一个简单而有趣的小游戏。2. 特点说明:1)程序交互性好,操作性强。2)易操作。简单而有趣。3)功能全
7、面,如:开始新游戏、暂停、继续、设置初级、设置高级、查看历史成绩、查看游戏说明、退出游戏。4)对丁每次不可选的按钮设置为灰显,避免了用户的错误操作。3.2. 性能本游戏在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中, 始终坚持活晰明了,在性能方面能够实现效率高,不易出错等优点。游戏主界面应该力求美观,赏心悦目。游戏控制模块应做到易懂、易操作,而且准 确率局,不易出错。3.3.输入项用户的按钮操作,如点击 NewGame Pause Resume LowLevel、HighLevel > HighScore Description> Exit。或者选择键盘上的方向
8、键和游戏设置的快捷键。快捷键 有:N(NewGame)、P(Pause) R(Resume) L(LowLevel)、H(HighLevel)、S(HighScore)、 D(Description)、E(Exit)。3.4.输出项时间、分数,以及将石头、食物、等级、分数、时间、蛇每个节点的坐标信息3.5.功能snake.start();food.newFood();time.newlime();从文件中读取历史分数记录 停止计时,将石头、食物、等级、分数、时间、蛇每 个节点的坐标信息保存到文件中去文件中读取石头、食物、等级、分数、时间、蛇每个节点的坐标信息,snake.start();tlm
9、e.newTlme();food.newFood(food);设定Type值为1, setGround (Type);改变蛇移动的时间间隔 设定Type值为2, setGround (Type);改变蛇移动的时间间隔时间分数记录信息System.exlt(O);3.6.算法1. 蛇、石头、食物的表小方法:把显示区看做一个大大的表格,里面的格子就是组成蛇的基本单位,一个格子就表示 一块石头或代表一个事物。几个连在一起的格子就可以代表一条蛇。使用坐标来区分 这些格子。X坐标01V 2坐标345食物(L0)(0. 1).(2.2)(3. 2)回01234567892. 蛇的移动方式蛇每移动一步,可以
10、看做蛇头增加一个节点,蛇尾删去一个节点移动前去掉移动后3. 保存蛇的数据结构因为要区分蛇头和蛇尾,这就要求这个数据结构是有序的,还要经常的访问最 后一个和第一个节点,所以LinkList最适合。4. 蛇的移动方向x坐标根据原来蛇头的坐标和方向计算新蛇头的坐标,5. 格子的坐标和像素坐标由丁画蛇、食物、石头我们只是填充一个矩形,或者在相应位置显示一张图片, 所以我们要知道每个格子的坐标。toP rT 1格坐标 (2J)left =2皆个点的像素坐标为x坐标:格子的宽度Teny坐标:格子的高度* topleft是这个格子强左边界的距离top是这个格距上边界的距离NewGameDraw:Food,S
11、nake,GroundStart Timer,Sanek MoveGameOveDraw:Food,Snake,Ground,Sanek Move3.8.接口SnakeListener:Void SankeMoved (Snake);3.9. 存储分配该游戏软件运行时,Snakes Food Ground三个对象一致同时存在,直到戏结 束。其中蛇移动方法长期占用资源,改变方向、吃到食物及石头都是瞬发动作,只 是瞬间占用系统资源。3.10. 注释设计Snake类中1) private int oldDirection,newDirection;用于判断newDirection和oldDirect
12、ion是否为相反方向,用于选取有效方向2) private Point oldTail;用于判断蛇头是否和蛇身的某个节点的坐标重合,即蛇是否吃到自己。3) Private bool life=TRUE ;进程的控制条件3.11 .限制条件1. 每个选项 NewGamePausa Resume LowLevel、HighLevel、Exit 不能连续点击。2. 每次要点击Exit退出游戏才能保存游戏。3. 所运行机器必须装有JVM3.12.测试计划1. 对这几个主要功能 NewGame、Pauss 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络文学IP虚拟偶像产业融合发展研究报告
- 教育信息化背景下在线教育市场发展分析报告
- 城市交通拥堵治理2025:公交优先战略下的公共交通与公共交通产业风险研究报告
- 网通营业员个人工作总结模版
- 聚焦2025年药品质量控制与国际认证体系改革路径报告
- 自动驾驶卡车在2025年物流运输中的智能驾驶系统故障诊断报告
- 深海矿产资源勘探技术智能化应用2025年发展前景报告
- 低碳城市先行者:2025年广州规划与实践案例分析报告
- 船舶制造行业2025年订单需求与船舶智能航行系统研发报告
- 稀土市场国际化战略与2025年全球竞争格局洞察报告
- 矿山探矿证转让合同协议
- 外包免责协议书模板
- 广东省广州市2025届普通高中毕业班综合测试(二)物理试题(含答案)
- 广东省惠州市惠阳区知行学校2024-2025学年七年级下学期4月期中数学试题(含部分答案)
- 2025年深圳市九年级中考语文二模联考试卷附答案解析
- 护士执业资格考试资料2024
- 集体备课培训讲座
- 危废处置方案
- 2025年全国会展策划师岗位职业技能资格知识考试题库与答案
- 贵州省考试院2025年4月高三年级适应性考试历史试题及答案
- 儿童暴发性心肌炎诊治专家建议(2025)解读课件
评论
0/150
提交评论