1、 J Javaava 课程设计报告课程设计报告 俄罗斯方块游戏俄罗斯方块游戏 学生姓名: 学 号: 系 别:信息工程系 专 业:软件技术 班 级: 指导教师: 论文提交时间:2013 年 x 月 x 日 1 目录目录 摘要 2 一 游戏设计说明 3 1.1 游戏的设计及实现 3 1.2 游戏流程图设计 3 二 详细设计 . 4 2.1 参数及界面 4 2.2 初始化构造方法. 5 2.3 初始化地图 . 5 2.4 生成新方块的方法 . 5 2.5 旋转方法. 6 2.6 判断是否合法方法 6 2.7 消行方法. 6 2.8 判断挂方法 . 7 三 测试分析 . 8 四 设计体会 . 8 五
2、游戏代码 . 9 参考文献: . 17 2 摘要摘要 俄罗斯方块游戏运用 java 实现具有一定功能的游戏软件,主要功能如下: 1. 控制对象左右下运动; 2. 控制对象旋转; 3. 判断对象是否越界; 4. 判断对象底下是否到底下或固定对象; 5. 判断某一行是否全有对象,然后消一行,加分; 6. 判断游戏进行是否挂了,然后自动重新开始,分数清零。 关键词:java、俄罗斯方块游戏、对象 3 一一 游戏设计说明游戏设计说明 1.1 游戏的设计及实现游戏的设计及实现 本游戏主要有以下 5 个主要方法: 1.MyPanel() 初始化构造方法; 2.newmap() 初始化地图; 3.newbo
3、xs() 生成新方块方法; 4.blow() 是否合法方法; 5.gobox() 消行方法; 1.2 游戏流程图设计游戏流程图设计 开始开始 初始化构造方法初始化构造方法 初初 始始 化化 地地 图图 生生 成成 新新 方方 块块 画画 围围 墙墙 旋转方法旋转方法 左移方法左移方法 右移方法右移方法 下落方法下落方法 是是 否否 合合 法法 方方 法法 把把 当当 前前 添添 加加 ma p 画画 方方 块块 方方 法法 消消 行行 方方 法法 判判 断断 挂挂 方方 法法 4 二二 详细设计详细设计 2.1 参数及界面参数及界面 int boxs 方块类型 int scoer 分数 int
4、 boxscore 方块状态 int map = new int1323 定义已经放下的方块 x=0-11,y=0-21 2.1 游戏界面 5 2.2 初始化构造方法初始化构造方法 开始,初始化方块、分数、地图等。 public MyPanel() newboxs(); newmap(); Timer timer = new Timer(1000, new TimerListener(); timer.start(); drawbox(); 2.3 初始化地图初始化地图 开始游戏时,初始化参数。 public void newmap() for (i = 0; i 12; i+) for (j
5、 = 0; j 22; j+) mapij = 0; 2.4 生成新方块的方法生成新方块的方法 public void newboxs() boxs = (int) (Math.random() * 1000) % 7; boxscode = (int) (Math.random() * 1000) % 4; x = 4; y = 0; if (gameover(x, y) = 1) newmap(); drawbox(); score = 0; JOptionPane.showMessageDialog(null, “GAME OVER“); 6 2.5 旋转方法旋转方法 通过按来控制对象旋
6、转,如果对象没有越界或附近没有固定对象可以旋 转,否侧失效。 public void turn() int tempturnState = boxscode; boxscode = (boxscode + 1) % 4; if (blow(x, y, boxs, boxscode) = 1) if (blow(x, y, boxs, boxscode) = 0) boxscode = tempturnState; repaint(); 2.6 判断是否合法方法判断是否合法方法 用来判断对象是否越界、是否继续下去等。 public int blow(int x, int y, int boxs, int boxscode) for (int a = 0; a 4; a+) for (int b = 0; b 4; b+) if (shapesbox