/** * 현재 이 객체가 가지고 있는 테트리스 블록의 형테를 입력 받은 형태로 변경한다. * * @param TetrisBlocks */ public void setShape(TetrisBlocks shape) { coordsTable = new int[][][] { {{0, 0}, {0, 0}, {0, 0}, {0, 0}}, // NoShape {{0, -1}, {0, 0}, {-1, 0}, {-1, 1}}, // SquareShape {{0, -1}, {0, 0}, {1, 0}, {1, 1}}, // LShape {{0, -1}, {0, 0}, {0, 1}, {0, 2}}, // Line {{-1, 0}, {0, 0}, {1, 0}, {0, 1}}, {{0, 0}, {1, 0}, {0, 1}, {1, 1}}, {{-1, -1}, {0, -1}, {0, 0}, {0, 1}}, {{1, -1}, {0, -1}, {0, 0}, {0, 1}} }; // { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, // NoShape // { { 0, -1 }, { 0, 0 }, { -1, 0 }, { -1, 1 } },// ZShape // { { 0, -1 }, { 0, 0 }, { 1, 0 }, { 1, 1 } },// ZShape // { { 0, -1 }, { 0, 0 }, { 0, 1 }, { 0, 2 } },// Line // { { -1, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 } },// TShape // { { 0, 0 }, { 1, 0 }, { 0, 1 }, { 1, 1 } },// SquareShape // { { -1, -1 }, { 0, -1 }, { 0, 0 }, { 0, 1 } },// LShape // { { 1, -1 }, { 0, -1 }, { 0, 0 }, { 0, 1 } } }; // MirroredLShape for (int i = 0; i < 4; i++) { for (int j = 0; j < 2; ++j) { coords[i][j] = coordsTable[shape.ordinal()][i][j]; } } nowShape = shape; }
/** 현재 이 객체가 가지고 있는 테트리스 블록에 대한 형태를 랜덤으로 변경한다. */ public void setRandomShape() { Random r = new Random(); int x = Math.abs(r.nextInt()) % 7 + 1; TetrisBlocks[] values = TetrisBlocks.values(); setShape(values[x]); }