JAVA--俄罗斯方块实验报告

上传人:我*** 文档编号:132201413 上传时间:2020-05-13 格式:DOC 页数:14 大小:91.50KB
返回 下载 相关 举报
JAVA--俄罗斯方块实验报告_第1页
第1页 / 共14页
JAVA--俄罗斯方块实验报告_第2页
第2页 / 共14页
JAVA--俄罗斯方块实验报告_第3页
第3页 / 共14页
JAVA--俄罗斯方块实验报告_第4页
第4页 / 共14页
JAVA--俄罗斯方块实验报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《JAVA--俄罗斯方块实验报告》由会员分享,可在线阅读,更多相关《JAVA--俄罗斯方块实验报告(14页珍藏版)》请在金锄头文库上搜索。

1、 目录 一 需求分析一 需求分析 2 二 系统运行环境二 系统运行环境 2 三 系统功能需求描述 三 系统功能需求描述 2 四 总体设计四 总体设计 2 五 系统结构图五 系统结构图 3 六 程序模块设计六 程序模块设计 3 七 实验总结体会七 实验总结体会 15 一 需求分析一 需求分析 在个人电脑日益普及的今天 一些有趣的桌面游戏已经成为人们在使用计算机进行工 作或学习之余休闲娱乐的首选 而俄罗斯方块游戏是人们最熟悉的小游戏之一 它以其趣 味性强 易上手等诸多特点得到了大众的认可 因此开发此游戏软件可满足人们的一些娱 乐的需求 此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行的 界

2、面美观的 易于 控制的俄罗斯方块游戏 二二 系统运行环境 系统运行环境 操作系统选择 Windows XP 版本 运行环境选择 MyEclipse 三 系统功能需求描述三 系统功能需求描述 俄罗斯方块游戏是一款适合大众的游戏软件 它适合不同年龄的人玩 本软件要实现 的功能如下 1 游戏区 玩家可以在游戏区中堆积方块 并能够在游戏过程中随时了解得分 情况 2 游戏控制 玩家可以通过游戏控制功能来选择开始新的一局游戏 暂停或退 出游戏 3 级别设置 玩家可以根据自己的需要自行设定游戏的开始级别 级别越高 游戏速度越快 难度越大 四 总体设计四 总体设计 游戏中玩家可以做的操作有 1 以 90 度为

3、单位旋转方每一格块 2 以格子为单位左右移动方块 让方块加速落下 3 方块移到区域最下方或是着地到其他方块上无法移动时 就会固定在该处 而新的随机图形会出现在区域上方开始落下 4 当区域中某一列横向格子全部由方块填满 则该列会自动消除并成为玩家 的得分 同时删除的列数越多 得分指数上升 5 当固定的方块堆到区域最上方 则游戏结束 五 系统结构图五 系统结构图 游戏区 游戏控制 显示玩家操作 显示操作结果 开始 暂停 继续 提高等级 退出 降低等级 六 程序模块设计六 程序模块设计 6 1 用户界面设计 游戏区模块 创建游戏区 处理玩家游戏操作 显示游戏结果 俄罗斯方块游戏 游戏控制模块 开始游

4、戏 暂停游戏 初始级别设置 退出游戏 6 2 程序代码设计 package russia import java awt import java awt event 俄罗斯方块类 class ERS Block extends Frame private static final long serialVersionUID 1L public static boolean isPlay false public static int level 1 score 0 public static TextField scoreField levelField public static MyTim

5、er timer GameCanvas gameScr public static void main String argus ERS Block ers new ERS Block 俄罗斯方块游戏 V1 0 Author Vincent WindowListener win listener new WinListener ers addWindowListener win listener 俄罗斯方块类的构造方法 SuppressWarnings deprecation ERS Block String title super title setSize 600 480 setLayou

6、t new GridLayout 1 2 gameScr new GameCanvas gameScr addKeyListener gameScr timer new MyTimer gameScr timer setDaemon true timer start timer suspend add gameScr Panel rightScr new Panel rightScr setLayout new GridLayout 2 1 0 30 rightScr setSize 120 500 add rightScr 右边信息窗体的布局 MyPanel infoScr new MyPa

7、nel infoScr setLayout new GridLayout 4 1 0 5 infoScr setSize 120 300 rightScr add infoScr 定义标签和初始值 Label scorep new Label 分数 Label LEFT Label levelp new Label 级数 Label LEFT scoreField new TextField 8 levelField new TextField 8 scoreField setEditable false levelField setEditable false infoScr add sco

8、rep infoScr add scoreField infoScr add levelp infoScr add levelField scorep setSize new Dimension 20 60 scoreField setSize new Dimension 20 60 levelp setSize new Dimension 20 60 levelField setSize new Dimension 20 60 scoreField setText 0 levelField setText 1 右边控制按钮窗体的布局 MyPanel controlScr new MyPane

9、l controlScr setLayout new GridLayout 5 1 0 5 rightScr add controlScr 定义按钮 play Button play b new Button 开始游戏 play b setSize new Dimension 50 200 play b addActionListener new Command Command button play gameScr 定义按钮 Level UP Button level up b new Button 提高级数 level up b setSize new Dimension 50 200 l

10、evel up b addActionListener new Command Command button levelup gameScr 定义按钮 Level Down Button level down b new Button 降低级数 level down b setSize new Dimension 50 200 level down b addActionListener new Command Command button leveldown gameScr 定义按钮 Level Pause Button pause b new Button 游戏暂停 pause b set

11、Size new Dimension 50 200 pause b addActionListener new Command Command button pause gameScr 定义按钮 Quit Button quit b new Button 退出游戏 quit b setSize new Dimension 50 200 quit b addActionListener new Command Command button quit gameScr controlScr add play b controlScr add level up b controlScr add lev

12、el down b controlScr add pause b controlScr add quit b setVisible true gameScr requestFocus 重写 MyPanel 类 使 Panel 的四周留空间 class MyPanel extends Panel private static final long serialVersionUID 1L public Insets getInsets return new Insets 30 50 30 50 游戏画布类 class GameCanvas extends Canvas implements Key

13、Listener private static final long serialVersionUID 1L final int unitSize 30 小方块边长 int rowNum 正方格的行数 int columnNum 正方格的列数 int maxAllowRowNum 允许有多少行未削 int blockInitRow 新出现块的起始行坐标 int blockInitCol 新出现块的起始列坐标 int scrArr 屏幕数组 Block b 对方快的引用 画布类的构造方法 GameCanvas rowNum 15 columnNum 10 maxAllowRowNum rowNu

14、m 2 b new Block this blockInitRow rowNum 1 blockInitCol columnNum 2 2 scrArr new int 32 32 初始化屏幕 并将屏幕数组清零的方法 void initScr for int i 0 i rowNum i for int j 0 j columnNum j scrArr i j 0 b reset repaint 重新刷新画布方法 public void paint Graphics g for int i 0 i rowNum i for int j 0 j columnNum j drawUnit i j

15、scrArr i j 画方块的方法 public void drawUnit int row int col int type scrArr row col type Graphics g getGraphics switch type 表示画方快的方法 case 0 g setColor Color black break 以背景为颜色画 case 1 g setColor Color blue break 画正在下落的方块 case 2 g setColor Color magenta break 画已经落下的方法 g fill3DRect col unitSize getSize hei

16、ght row 1 unitSize unitSize unitSize true g dispose public Block getBlock return b 返回 block 实例的引用 返回屏幕数组中 row col 位置的属性值 public int getScrArrXY int row int col if row rowNum col columnNum return 1 else return scrArr row col 返回新块的初始行坐标方法 public int getInitRow return blockInitRow 返回新块的初始行坐标 返回新块的初始列坐标方法 public int getInitCol return blockInitCol 返回新块的初始列坐标 满行删除方法 void deleteFullLine int full line num 0 int k 0 for int i 0 i rowNum i boolean isfull true L1 for int j 0 j columnNum j if scrArr i j 0 k

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号