parent
f33b256fcc
commit
11b95ee628
@ -1,68 +0,0 @@
|
||||
package tetris;
|
||||
|
||||
public class Block {
|
||||
private final int type;
|
||||
private int x, y;
|
||||
private int[][] shape;
|
||||
private static final int[][][] SHAPES = {
|
||||
{{1, 1, 1, 1}}, {{1, 1}, {1, 1}}, {{1, 1, 1}, {0, 1, 0}},
|
||||
{{1, 1, 1}, {1, 0, 0}}, {{1, 1, 1}, {0, 0, 1}},
|
||||
{{0, 1, 1}, {1, 1, 0}}, {{1, 1, 0}, {0, 1, 1}}
|
||||
};
|
||||
|
||||
public Block(int type) {
|
||||
this.type = type;
|
||||
this.shape = SHAPES[type];
|
||||
this.x = (type == 0) ? 3 : 4;
|
||||
this.y = 0;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public int getX() {
|
||||
return x;
|
||||
}
|
||||
|
||||
public int getY() {
|
||||
return y;
|
||||
}
|
||||
|
||||
public int[][] getShape() {
|
||||
return shape.clone();
|
||||
}
|
||||
|
||||
public void moveLeft() {
|
||||
x--;
|
||||
}
|
||||
|
||||
public void moveRight() {
|
||||
x++;
|
||||
}
|
||||
|
||||
public void moveDown() {
|
||||
y++;
|
||||
}
|
||||
|
||||
public void moveTo(int x, int y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
public void rotate() {
|
||||
int[][] newShape = new int[shape[0].length][shape.length];
|
||||
for (int i = 0; i < shape.length; i++) {
|
||||
for (int j = 0; j < shape[0].length; j++) {
|
||||
newShape[j][shape.length - 1 - i] = shape[i][j];
|
||||
}
|
||||
}
|
||||
shape = newShape;
|
||||
adjustPositionAfterRotation();
|
||||
}
|
||||
|
||||
private void adjustPositionAfterRotation() {
|
||||
int maxWidth = shape[0].length;
|
||||
x = Math.max(0, Math.min(x, 10 - maxWidth));
|
||||
}
|
||||
}
|
Loading…
Reference in new issue