Block.java
/** 落下するブロックBlockクラス */
public class Block {
/** ブロックの位置 */
protected int x, y;
/** 以前のブロックの位置 */
protected int old_x, old_y;
/** ブロックの移動の可能性 */
protected boolean dropFlag, toLeftFlag, toRightFlag;
/** セルの状態 */
protected int top, middle, bottom;
/** コンストラクタ(クラスの新しいデータの生成を行う)*/
Block( int top, int middle, int bottom ) {
x = 0; y = 0;
old_x = 0; old_y = 0;
dropFlag = false;
toLeftFlag = false;
toRightFlag = false;
this.top = top;
this.middle = middle;
this.bottom = bottom;
}
/** ブロックのX座標を設定するメソッド */
public void setX( int x ){ this.x = x; }
/** ブロックのX座標を得るメソッド */
public int getX(){ return x; }
/** ブロックのY座標を設定するメソッド */
public void setY( int y ){ this.y = y; }
/** ブロックのY座標を得るメソッド */
public int getY(){ return y; }
/** ブロックの古いX座標を得るメソッド */
public int getOldX(){ return old_x; }
/** ブロックの古いY座標を得るメソッド */
public int getOldY(){ return old_y; }
/** 一番上のブロックの状態を返すメソッド */
public int getTopState(){ return top; }
/** 中央のブロックの状態を返すメソッド */
public int getMiddleState(){ return middle; }
/** 一番下のブロックの状態を返すメソッド */
public int getBottomState(){ return bottom; }
/** ブロックの左への移動を可能にするメソッド */
public void enableToLeft(){ toLeftFlag = true; }
/** ブロックの左への移動を不可能にするメソッド */
public void disableToLeft(){ toLeftFlag = false; }
/** ブロックの左への移動を可能か調べるメソッド */
public boolean checkToLeft(){ return toLeftFlag; }
/** ブロックの左への移動を実行するメソッド */
public void toLeft(){
if( toLeftFlag ){
old_x = x; old_y = y;
x--;
}
}
/** ブロックの右への移動を可能にするメソッド */
public void enableToRight(){ toRightFlag = true; }
/** ブロックの右への移動を不可能にするメソッド */
public void disableToRight(){ toRightFlag = false; }
/** ブロックの右への移動を可能か調べるメソッド */
public boolean checkToRight(){ return toRightFlag; }
/** ブロックの右への移動を実行するメソッド */
public void toRight(){
if( toRightFlag ){
old_x = x; old_y = y;
x++;
}
}
/** ブロックの下の移動を不可能にするメソッド */
public void enableDrop(){ dropFlag = true; }
/** ブロックの下の移動を不可能にするメソッド */
public void disableDrop(){ dropFlag = false; }
/** ブロックの下への移動を可能か調べるメソッド */
public boolean checkDrop(){ return dropFlag; }
/** ブロックの下への移動を実行するメソッド */
public void drop(){
if( dropFlag ){
old_x = x; old_y = y;
y++;
}
}
/** ブロックの色を下へずらすメソッド */
public void downColors(){
int tmp = bottom;
bottom = middle;
middle = top;
top = tmp;
}
/** ブロックの色を上へずらすメソッド */
public void upColors(){
int tmp = top;
top = middle;
middle = bottom;
bottom = tmp;
}
}