俄罗斯方块

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

俄罗斯方块一共三个类中间用等号隔开

软件的开发过程

1 明确业务需求

用自然语言,将业务功能描述清楚

...

2 业务分析

找到有哪些业务对象,和图片的分析

tetris(俄罗斯方块)

|--score 累计分数

|--lines 销毁的行数

|--Wall(墙20行x10列)

|--20row(行)

|--10 col cell(列) |--tetromino(4格方块,有7种形态)

|-- 4 cell

|--nextOne 下一个准备下落的方块

|-- 4 cell

3 数据模型,一切业务对象转换为数字表示

场地按照行列划分为20x10格子

格子有属性row,col,color

4 类设计

Tetris

|-- int score

|-- int lines

|-- Cell[20][10] wall

|-- Tetromino tetromino

||--Cell[4] cells

|-- row

|-- col

|-- color

5 算法设计,就是如何利用数据的计算实现软件的功能4格方块的初始形态:I S Z J L T O

就在初始数据的数值状态设计

四格方块的下落计算:就是将每个格子的row+1

就是将下落的业务功能,转换为数字计算实现

左右移动

下落流程控制:控制方块下落与墙之间的控制关系1合理的文字流程描述

2分析文字描述中的功能(动作)为方法

3用流程控制语句连接方法实现功能

4严格测试结果!TestCase

左右移动流程控制

分数计算

界面的绘制

键盘事件控制

旋转流程控制

加速下降流程控制

开始流程控制(Timer)

暂停流程控制

继续流程控制

结束流程控制

首先是Cell类,最基本的类包含3个私有属性和get,set方法,重写Object类的toString输出方法,并规定格子所具有的3个移动功能

package com.tarena.tetris;

//包:小写英文字母,域名倒写.项目名

/**

* 最小的格子

*/

public class Cell{

private int row;

private int col;

private int color;

public Cell(int row, int col, int color) {

super();

this.row = row;

this.col = col;

this.color = color;

}

public int getCol() {

return col;

}

public void setCol(int col) {

this.col = col;

}

public int getColor() {

return color;

}

public void setColor(int color) { this.color = color;

}

public int getRow() {

return row;

}

public void setRow(int row) { this.row = row;

}

public void left(){

col--;

}

public void right(){

col++;

}

public void drop(){

row++;

}

public String toString(){

return row+","+col;

}

}

===============================================================

package com.tarena.tetris;

import java.util.Arrays;

import java.util.Timer;

import java.util.TimerTask;

import javax.swing.JPanel;//是能够显示的矩形面板区域

import javax.swing.JFrame;//窗口框

import javax.swing.border.LineBorder;//实现边框

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyListener;

import java.awt.event.KeyEvent;

/*

* 俄罗斯方块类

* 俄罗斯方块扩展了(extends)系统的显示面板,增加了墙和* 正在下落的方块

* */

public class Tetris extends JPanel{

public static final int ROWS = 20;

public static final int COLS= 10;

/*代表方块下落着陆的墙*/

private Cell[][] wall = new Cell[ROWS][COLS];

/*是正在下落的方块*/

private Tetromino tetromino;

/*下一个进入的方块*/

private Tetromino nextOne;

private static int score;

相关文档
最新文档