《贪吃蛇的设计与实现.docx》由会员分享,可在线阅读,更多相关《贪吃蛇的设计与实现.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、贪吃蛇的设计与实现 项目工程实践课程结题报告 课题名称贪吃蛇的设计与实现 分数 日期:_2022_年_5_月_20_日 目录 目录 (2) 一、需求分析 (3) 二、概要设计 (3) 三、逻辑设计 (6) 四、应用程序 (10) 五、测试. 错误!未定义书签。 六、部分源程序代码 一、需求分析 本系统主要是完成贪吃蛇游戏的基本操作。用户可以自己练习和娱乐。本系统需要满足以下几点要求: (1) 利用方向键来改变蛇的运行方向。 (2) 空格键暂停或继续游戏,并在随机的地方产生食物。 (3) 吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。 二、概要设计 (1)游戏处理流程。 本次游戏
2、处理流程如图1所示。 图 1 游戏流程设 计 进入游戏画面 单机“begin ”按钮,游戏 开始,蛇开始随即出现 键盘操作: “左移” “右移” “向下” “向上” 没有吃到实物且蛇碰到边界或者自身 游戏中途欲退出, 游戏结束 单击游戏界面上的“” (2)功能模块设计。 软件开发过程中的功能模块设计,主要解决实现该游戏需求的程序模块设计问题。包括如何把该游戏划分成若干个模块,决定各个模块之间的接口、模块之间传递的信息,以及模块结构的设计等。 (3)游戏功能 本系统主要完成一下几个方面的功能: 1. 游戏控制功能包括游戏的开始、暂停、退出 2. 界面布局 3. 其他辅助功能 (4)总设计模块的划
3、分 根据游戏游戏需求中游戏所要实现的功能,整个游戏分为二个模块进行具体的设计,如图2所示。 (5)游戏煮界面模块 游戏界面主框架主要包括游戏图形区域界面、游戏的开始按钮、暂停按钮、游戏的退出按钮。游戏界面主框架的主要结构如图3所。 贪吃蛇游戏 游戏主界面模 块 游戏控制模块 图2游戏总设计模块 游戏的主界面框架 游戏图形区域界游戏控制按钮界 图3游戏主界面框架 (6)游戏控制模块 游戏控制模块主要通过主界面上的按钮来控制游戏的开始、游戏的暂停、游戏的退出这三个功能。在这个模块中,需要给各个按钮或文本框加入代码,来对上述的功能加以进一步的实现。游戏控制模块的主要框架如图4所示。 1. 游戏开始控
4、制:单击“begin ”按钮,游戏画布既有移动的贪吃蛇出现,游戏正式开始 2. 游戏退出控制:单击“”按钮,退出游戏。 (7)类模块设计 1.类模块之间的关系 通过对功能要求的分析,将贪吃蛇游戏功能划分为6个类模块,他们的关系如图5所示。 游戏控制模块 游 戏的的开始功 能 游戏的退出功能 图4游戏控制模块框架 GreedSnake (主 类) SnakeFrame (用户界面 SnakePabel (游戏界面及内 容) SnakeModel (游戏内 AnayIndexReadOnly (方向) AnayIndex (游戏方向) 图5贪吃蛇之间的关系 (8)各类模块设计概要 1.GreedS
5、nake 类 GreedSnake 类 该类包含main 方法,为应用程序的主类。该类用来创建游戏的用户界面,整个程序从该类的main 方法开始执行。 SnakeFrame 类 用来设计游戏的用户界面。 SnakePanel 类 设置游戏运行状态,设置蛇头颜色,背景颜色,随机块颜色,移动以及分数更新,实现上下左右移动的方法接口。 SnakeModel 类 设置初始化蛇的形状和运行方向,设置随机块的位置,判断游戏是否出界,以及出界后的处理,设置方向的更新。 ArrayIndex 类 用来得到坐标,设置坐标以及判断运行方向相同或相反。 ArrayIndexReadOnly 类 用来得到坐标,以及判
6、断运行方向相同或相反。 三、逻辑设计 1.程序的主要结构: 本次所设计贪吃蛇游戏程序的主结构如图6所示。 初始化 进入时间等待状 态 开始请求 退出 正常退 不正常退出 相关事件 返回 初始化失败 图6贪吃蛇程序主结构 2.类模块流程图 GreedSnake类 创建SnakeFrame窗口类的一个实 例 设置关闭窗口按键和窗口高度宽 带 图7GreedSnake类程序流程图 SnakeFrame 第一菜单及菜单变量 创建菜单及菜单项 将组件注册给事件监听者 处理给予菜单动作时间 图8SnakeFrame类程序流程图 SnakePanel类 设置蛇头身体,随机块和 初始运行方向变量 处理游戏动作
7、 SnakeModel 类 实现移动接口 实现按键接口 定义数据成员 图9SnakePanel 类程序流程图 设置函数坐标和方向 设置初始化状态 设置贪吃蛇界面并初始化游戏 是否与运行方向相反 保持原来方向 按指示方向运动 蛇是否吃了随机块 是否出界 是否相交 重设置蛇头和蛇身,重新生产随即块 游戏结束 游戏结束 Y Y Y Y N N N 移动,把蛇头加到蛇身 体里面并且把尾巴移 出 是否吃了足 够的果实 Y 游戏结束,“你赢了” 图10SnakeModel类程序流程 图 ArrayIndexReadOnly类 构造函数得到坐标 设置与运行方向相同 和相反的表示方法 图11 ArrayIndexReadOnly类程序流程图 ArrayIndex类 设置X,Y坐标 设置与运行方向相同 或相反的表示方法 图12 ArrayIndex类程序流程图 四、应用程序 打开贪吃蛇游戏后,出现如图14所示界面 图14 点击“begin”出现如图15界面。 图15 按“”控制蛇的方向,如图16所示。 图16 吃了足够的果实游戏结束,出现“you win”,如图16所示。 图16
限制150内