1、杨磊Java 语言 课程期末作业1JAVA 程序设计课程期末作业题 目 第 9 题: 俄罗斯方块 学 院 专 业 班 别 学 号 姓 名 2017 年 11 月 28 日杨磊Java 语言 课程期末作业2杨磊Java 语言 课程期末作业3一、课程题目 (3)俄罗斯方块俄罗斯方块应有如下功能:1在二维的平面里用各种随即产生的方块堆积木,每填满一行消去一行,当到达顶部时,游戏结束。2 玩家能通过方向键来控制方块的转动,左移,右移和直落。3每种类型的方块都有颜色。 4游戏能够在玩的过程中,给出玩家的分数,分数是由随即方块的类型决定的,每堆一个方块,就将分数累加到总分中。5游戏有暂停、开始和结束、游戏
2、规则、游戏说明等控制。(其它功能可自行添加)二、题目分析与设计 1.所用开发环境:Eclipse2.题目需求:用户能通过键盘实现控制游戏的开始、暂停、结束,游戏时对方块的控制,游戏能显示出用户所得分数与消除的行数,实现娱乐的功能软件功能架构图:杨磊Java 语言 课程期末作业43.界面设计过程、其设计上的创意及组件的布局策略:游戏界面包括方块活动界面和信息显示界面。方块活动界面方面放在游戏界面左端,通过规定每个格子的边长、格子的行列数、配合 xy 坐标系使用DrawRect()来具象化方块活动的格子,而活动的方块则是对格子的“ 填充”,方块所在的格子使用 FiilRect()来给方块所在的格子
3、填色。信息显示界面放在杨磊Java 语言 课程期末作业5游戏界面右端由不同大小不同字体的字符串从上到下组成,可显示相关游戏说明及实时显示用户的游戏分数及已消除行数。界面在设计风格上抛弃了现在游戏界面主流花花绿绿,炫酷的风格,走的是怀旧的路线。利用浅灰色做背景,其他元素统一用深灰色,界面简单,还原出一个小时候掌上游戏机的感觉。5. 论述程序的实现,包括各模块的设计、类的设计、对象的协作过程等,必要时加以各种图形和表格辅助论述(可画流程图、类图、用例图、状态图、时序图等,比如可以画出系统主要类图和其关系图) 。不得以粘贴代码的方式代替设计部分。类的设计过程:类图:本程序包含 3 个类文件,分别是:
4、1.用于构建游戏界面、实现对游戏状态的控制、动画的显示、启动游戏且包含 main 方法的主类 Tetris;杨磊Java 语言 课程期末作业62.具象化方块活动的范围,为方块活动、动画显示提供基础框架的Cell;3.以及实现方块的产生及方块基本动作的 Tetromino。其中 Tetromino 类有一个内部类 State 用以记录方块按下旋转键后的状态,Tetromino 还有七个子类来实现产生 7 种不同的下落方块。对象的协作过程:(请放大看电子版)杨磊Java 语言 课程期末作业7三、测试分析游戏状态及功能测试:1.游戏能正常开始于暂停暂停画面:继续游戏(开始)画面:杨磊Java 语言 课程期末作业82.游戏能正常结束且从新开始结束游戏画面:杨磊Java 语言 课程期末作业9游戏重新开始画面:3.方块可以左右启动、旋转、加速下落于直落杨磊Java 语言 课程期末作业104.得分测试:得分正常,一次消除一行 1 分,两行 10,三行 20 分,四行50 分:消除一行得分:杨磊Java 语言 课程期末作业11消除两行的得分:消除三行的得分:杨磊Java 语言 课程期末作业12消除四行的得分:附录:源代码