文章目录
- 俄罗斯方块游戏(JAVA版)
- 项目实战指南
- 1. 项目范围说明书
- 1.1引言
- 1.2概述
- 1.3项目需求
- 1.3.1需求概述
- 1.3.2界面需求
- 1.3.2.1界面设计原则
- 1.3.2.2游戏界面原型
- 1.3.2.3界面各部件说明
- 菜单
- 方块下落区域
- 下一方块预览区
- 操作说明区
- 得分和等级
- 1.3.3游戏业务需求
- 1.3.3.1需求概述
- 1.3.3.2详细业务需求
- 1.4项目文档
- 1.4.1项目规划
- 1.4.2详细设计
- 1.4.3项目日报
- 1.4.4游戏发布
- 1.4.5项目api文档
- 2.软件设计
- 2.1设计概述
- 2.2整体框架
- 2.2.1框架概述
- 2.2.2框架视图
- 2.2.3 总体运行序列图
- 2.2.3.1概述
- 2.2.3.2顺序图
- 2.3界面设计
- 2.3.1概述
- 2.3.2主界面设计
- 2.3.2.1概述
- 2.3.2.2类图
- 2.3.2.3类描述
- 2.3.2.4主要方法实现流程图
- 2.3.3方块区域设计
- 2.3.3.1类图
- 2.3.3.2类描述
- 2.3.4预览区域设计
- 2.3.4.1 类图
- 2.3.4.2 类描述
- 2.3.5自定义游戏规则窗体设计
- 2.3.5.1类图
- 2.3.5.2类描述
- 2.3.6关于窗口设计
- 2.3.6.1类图
- 2.3.6.2类描述
- 2.4游戏业务设计
- 2.4.1游戏业务设计概述
- 2.4.2核心游戏业务设计
- 2.4.2.1方块类
- 2.4.2.2方块的最小元素Block
- 2.4.2.3 方块基类
- 2.4.2.4 L方块类(其他方块类似)
- 2.4.2.5 游戏按键监听器GameKeyPressListener
- 2.4.2.6音乐播放
- 源码和exe文件如下:
俄罗斯方块游戏(JAVA版)
项目实战指南
1. 项目范围说明书
1.1引言
为了确定项目的范围以便更好的对俄罗斯游戏项目加以实施,所以编写了该项目范围说明书。该说明书不对项目的整体范围做方方面面的说明,只编写其中的简要内容和环节。
1.2概述
在本说明书中项目的范围包含两块内容:
产品的需求规格说明书
产品的需求包含项目需求中所定义的游戏界面以及各业务功能。
项目过程涉及的相关文档
项目的实施过程中必须按照软件工程输出相应的开发文档,输出相关文档达成两个目标:
一、 规范化的软件开发过程,培养良好的开发习惯和软件工程的意识。
二 、质量管理部门将通过文档、源码等对项目做综合的评价。
1.3项目需求
1.3.1需求概述
该项目基于window xp平台,采用 J2SE的swing技术开发,开发包为jdk1.6,开发工具采用Eclipse Helios版。
俄罗斯方块界面要求美观大方、操作便捷、响应及时。业务功能主要包含以下几块内容:
- 方块图形多样化
- 方块实现移动以及旋转
- 方块实现消行处理
- 游戏底部方块自动上升
- 统计得分
- 游戏结束
1.3.2界面需求
1.3.2.1界面设计原则
-
List item
-
界面简洁美观
-
界面功能布局合理
-
界面交互友好
1.3.2.2游戏界面原型
1.3.2.3界面各部件说明
菜单
开局
点开局讲开始方块游戏,游戏默认为初级。
初级/中级/高级
初级/中级/高级菜单只能选择其一,级别的不同方块的下落速度和图形的种类将不同。
自定义
为了满足不同玩家对游戏的需求,增强游戏的适应性,游戏增加了自定义功能。自定义功能包含四个方面的内容:
一、 下落速度:滑动条一个单位代表速度提高20ms.
二、 方块形状:初级包含基本方块、中级包含”凹”型等方块、高级包含更复杂的方块(学员可以根据自己的喜好自行设计,不在文档约束范围)。
三、方块区域上涨:为了增大游戏的难度,方块底部可以在一定的时间间隔上涨。
四、游戏声音:为了增强游戏的视听效果,方块在触底和消行的时候播放声音。
退出
对话框提示“确定愿意退出游戏?”, 选择“是”则退出应用程序,选择“否”则继续停留在游戏界面。
帮助–关于
显示出游戏的版权信息。
方块下落区域
该区域的大小为及基本小方块的整数倍,用户在其中实现方块的移动、旋转、消行等操作。该区域要求整体感觉美观大方并且色调柔和,游戏结束中系统提示Game Over 输出在该区域的中间部分,要求用特殊字体和醒目的颜色显示。
下一方块预览区
该区域显示即将进入方块下落区的方块。当下落区的方块下落完毕的时候,该预览区的方块立即进入下落区,预览区同时生成一个新的方块。
操作说明区
操作说明区对操作方块的按键以及提示,因为此功能的存在已经俄罗斯方块游戏规则简单,所以将不再编写帮助手册。
得分和等级
该区域显示了当前游戏的得分以及玩家所处的等级,方块下落每消一行则得分加10,得分满200则进入下一等级,等级相应加1。
1.3.3游戏业务需求
1.3.3.1需求概述
本俄罗斯方块的需求主要包含两大块内容:一、基本的游戏需求,二、扩展的游戏需求。
基本的游戏需求包含以下几个方面:
- 开局
- 五种基本的方块的随机产生
- 方块的正确的下落以及旋转
- 游戏的暂停和继续
- 方块正确的触底消行
- 方块得分记录
- 游戏过关进入下一个等级
- 方块触顶游戏结束,提示按C键继续、按E键退出游戏
- 退出游戏
扩展的游戏需求包含以下几个方面:
- 游戏的初、中、高三级下游戏有不一样的难度
- 游戏在运行的过程中可以设切换游戏等级、自定义游戏规则,这些规则的设置立即在游戏中生效。
- 游戏中方块的种类要求更多多样化
- 游戏中可以自定义速度、声音、以及方块形状
- 游戏实现底层方块的上涨从而增加游戏的难度
- 游戏排行榜
- 未来游戏可能还附加其他消行的规则
1.3.3.2详细业务需求
- 总体流程图
- 菜单功能说明
游戏级别菜单只能3选1:
- 初级:下落速度500ms 包含基本方块。
- 中级:下落速度 300ms 包含复杂方块。
- 高级:下落速度 100ms 包含复杂方块,而且游戏区域底部方块会上涨。
1.4项目文档
1.4.1项目规划
每个学员在项目开始后应该提交一份项目规划,项目规划的格式参见<<项目管控体系>>中的相关文档,项目规划完成项目过程的整体规划,作为项目的执行和推进的纲要。
项目规划文档必须与项目开工后第2天提交至svn目录下,若未能按时提交则影响影响质量管理部们对项目的评估。
1.4.2详细设计
俄罗斯方块项目的详细设计文档反应了各小组或者个人对程序框架以及实现细节的一种预期,它给编码以及后期的维护提供了依据。详细设计文档于项目开工2天后提交小组评审,半天后将评审文档提交svn服务器。详细设计文档主要包含几块内容:
-
游戏总体框架
-
游戏类图
-
顺序图
-
关键算法流程图
1.4.3项目日报
每个学员每日都需提交日报至svn服务器,如果没有提交日报则影响质量管理部门对项目的跟踪踪和评估。日报描述计划、执行、以及未能解决的问题,具体的格式参见《项目管控体系》的日报相关文档。
1.4.4游戏发布
项目的打包成可运行的RussianBlockGame.jar,如果需要有安装向导则用第3方工具打包成exe可执行文件。
1.4.5项目api文档
根据代码的注释生成程序的api文档。
2.软件设计
2.1设计概述
该设计文档主要包含了俄罗斯方块的整体框架设计、界面设计、业务功能设计等内容。文档为编码提供了依据,面向的读者为编码人员、系统测试人员、项目质量人员。
本实战指导手册中引入软件设计旨在规范俄罗斯方块项目的设计和编码、以及提供设计文档编写的指导,力求在后续的项目中学员能通过本次初级的设计体验加以学习和扩展完成复杂项目设计。
2.2整体框架
2.2.1框架概述
采用经典的MVC框架,模型层包括各种游戏业务组件,控制器是各类事件监听器,视图层为与用户交互的窗口、对话框及其它界面要素。
2.2.2框架视图
下面对各层做些说明。
- 游戏界面
游戏界面以GameMainFrame 为中心,该Frame继承jdk的JFrame。GameMainFrame 聚合了各功能区域的Panel、菜单,同时也添加了键盘以及鼠标的监听(游戏界面和控制器之间建立连接)。
- 控制器
控制器在该框架中左承游戏界面右接游戏业务和游戏状态,控制器主要表现为监听对象以及监听对象对业务类调用。
- 业务类以及游戏状态
业务类主要是包含游戏的旋转判断、游戏的消行、方块的的移动,游戏状态主要包含用于维护游戏区域的静态2维数组,更多的细节参考详细设计中各模块的类图。
2.2.3 总体运行序列图
2.2.3.1概述
运行序列图简单的说明了开局后进行游戏的过程中,各类之间的调用顺序。该图从游戏全局的角度描述了其中的主要的类,除这些类之外系统还存在大量的其他相关类这里不予描述(注:时钟由系统按一定的时间间隔触发而执行下落的代码因此在顺序图中没有予以描述但不可忽略其存在)其他类之间的协作关系将在其密切相关的模块中介绍。
2.2.3.2顺序图
2.3界面设计
2.3.1概述
需求文档已经描述了游戏界面的模型,下文的界面设计更多的从界面类的角度对界面的构造加以阐述。界面的设计包含游戏主窗体以及窗体内的各部件的设计,设计的原则为各部件功能独立、结构单一、粒度适中。
2.3.2主界面设计
2.3.2.1概述
主界面运行后居于屏幕中央,界面不可最大化、点标题栏关闭按钮则结束整个应用,点菜单由MenuActionListener响应。
2.3.2.2类图
2.3.2.3类描述
2.3.2.4主要方法实现流程图
-
BaseFrame.autoCenter
-
GameMainFrame.initComponent
2.3.3方块区域设计
2.3.3.1类图
2.3.3.2类描述
2.3.4预览区域设计
2.3.4.1 类图
2.3.4.2 类描述
2.3.5自定义游戏规则窗体设计
2.3.5.1类图
2.3.5.2类描述
2.3.6关于窗口设计
2.3.6.1类图
2.3.6.2类描述
2.4游戏业务设计
2.4.1游戏业务设计概述
游戏业务类和游戏状态类分布于Model层,由监听器调用而后决定View层的显示。游戏中包含游戏规则的设置、游戏的开局、方块的继承体系、方块的移动、方块越界和消行、方块的随机产生等主体业务。游戏业务设计包含类图、类描述、协作图、状态图等内容。
2.4.2核心游戏业务设计
2.4.2.1方块类
- 类图
- 类图说明
系统内部的所有方块继承于BaseShape,支持旋转操作的方块可以同时实现旋转的接口。BaseShape内部包含一个ArrayList对象,该ArrayList 包含了若干个Block对象,Block的数量以及Block的初始位置由子类来实现。为了增强程序可读性,Direction定义为枚举类型包含了上下左右旋转(LEFT,RIGHT,DOWN,ROTATION),BaseShape.move方法依赖此类型。
2.4.2.2方块的最小元素Block
- 类图
- 类描述
2.4.2.3 方块基类
- 类图
- 类描述
2.4.2.4 L方块类(其他方块类似)
- 类图
- 类描述
2.4.2.5 游戏按键监听器GameKeyPressListener
- 类图
- 类描述
- 顺序图
2.4.2.6音乐播放
-
类图
-
类描述
源码和exe文件如下:
https://download.csdn.net/download/belongtocode/12397773
解压后直接打开exe即可运行,不用安装Java环境也可以!!!