Tetris/Java: Difference between revisions

Content added Content deleted
m (each Shape should just have one shape)
m (turn previewOffsets into EnumMap)
Line 6: Line 6:
import java.util.Arrays;
import java.util.Arrays;
import java.util.Random;
import java.util.Random;
import java.util.EnumMap;
import javax.swing.*;
import javax.swing.*;


Line 209: Line 210:
// preview
// preview
int idx = preSelectedShape.ordinal();
int idx = preSelectedShape.ordinal();
int offsetX = Config.previewOffets[idx][0] + 15 * blockSize;
int offsetX = Config.previewOffsets.get(preSelectedShape)[0] + 15 * blockSize;
int offsetY = Config.previewOffets[idx][1] + 2 * blockSize;
int offsetY = Config.previewOffsets.get(preSelectedShape)[1] + 2 * blockSize;


g.translate(offsetX, offsetY);
g.translate(offsetX, offsetY);
Line 466: Line 467:


private Shape(int[][] shape) {
private Shape(int[][] shape) {
this.shape = shape;
this.shape = shape;
pos = new int[4][2];
pos = new int[4][2];
reset();
reset();
Line 485: Line 486:


// used for centering shapes in the preview pane
// used for centering shapes in the preview pane
final static int[][] previewOffets = {{16, 15}, {-15, 15}, {0, 0},
final static EnumMap<Shape, int[]> previewOffsets = new EnumMap<>(Shape.class);
static {
{0, 0}, {-15, 5}, {16, 15}, {-15, 15}};
previewOffsets.put(Shape.ZShape, new int[]{16, 15});
previewOffsets.put(Shape.SShape, new int[]{-15, 15});
previewOffsets.put(Shape.Straight, new int[]{0, 0});
previewOffsets.put(Shape.TShape, new int[]{0, 0});
previewOffsets.put(Shape.Square, new int[]{-15, 5});
previewOffsets.put(Shape.LShape, new int[]{16, 15});
previewOffsets.put(Shape.JShape, new int[]{-15, 15});
}


final static Font mainFont = new Font("Monospaced", Font.BOLD, 48);
final static Font mainFont = new Font("Monospaced", Font.BOLD, 48);