-
Notifications
You must be signed in to change notification settings - Fork 1
/
PieceType.snap
57 lines (49 loc) · 1.34 KB
/
PieceType.snap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import awt.Point;
import awt.Point;
import awt.Point;
import awt.event.KeyEvent;
import awt.event.KeyListener;
import awt.Canvas;
import awt.Color;
import awt.Dimension;
import awt.Font;
import awt.Graphics;
import awt.Graphics2D;
import awt.Point;
import awt.event.WindowAdapter;
import awt.event.WindowEvent;
import awt.image.BufferStrategy;
import swing.JFrame;
import swing.JPanel;
import util.Arrays;
import util.Map;
import util.concurrent.ConcurrentHashMap;
import util.Random;
enum PieceType {
O(0, p(-1, 0), p(0, 0), p(-1, -1), p(0, -1)),
I(2, p(-2, 0), p(-1, 0), p(0, 0), p(1, 0)),
S(2, p(0, 0), p(1, 0), p(-1, -1), p(0, -1)),
Z(2, p(-1, 0), p(0, 0), p(0, -1), p(1, -1)),
L(4, p(-1, 0), p(0, 0), p(1, 0), p(-1, -1)),
J(4, p(-1, 0), p(0, 0), p(1, 0), p(1, -1)),
T(4, p(-1, 0), p(0, 0), p(1, 0), p(0, -1));
static const random = new Random();
var maxOrientations;
var points;
new(maxOrientations, p1, p2, p3, p4) {
this.maxOrientations = maxOrientations;
this.points = [p1, p2, p3, p4];
}
static getRandomPiece() {
return PieceType.values[random.nextInt(PieceType.values.size())];
}
getPoints() {
return points;
}
getMaxOrientations() {
return maxOrientations;
}
static p(x, y) {
return new Point(x, y);
}
}