de396ec0b8b9c5e0c3863dc1194b896300804ec5
[ansitris] / src / pieces.h
1 #ifndef PIECES_H_
2 #define PIECES_H_
3
4 #define BLK(x, y)       ((x) | ((y) << 4))
5
6 unsigned char pieces[][4][4] = {
7         /* straight piece */
8         {
9                 {BLK(0, 2), BLK(1, 2), BLK(2, 2), BLK(3, 2)},
10                 {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(1, 3)},
11                 {BLK(0, 2), BLK(1, 2), BLK(2, 2), BLK(3, 2)},
12                 {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(1, 3)}
13         },
14         /* box */
15         {
16                 {BLK(1, 1), BLK(2, 1), BLK(1, 2), BLK(2, 2)},
17                 {BLK(1, 1), BLK(2, 1), BLK(1, 2), BLK(2, 2)},
18                 {BLK(1, 1), BLK(2, 1), BLK(1, 2), BLK(2, 2)},
19                 {BLK(1, 1), BLK(2, 1), BLK(1, 2), BLK(2, 2)}
20         },
21         /* J block */
22         {
23                 {BLK(0, 1), BLK(1, 1), BLK(2, 1), BLK(2, 2)},
24                 {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(0, 2)},
25                 {BLK(0, 0), BLK(0, 1), BLK(1, 1), BLK(2, 1)},
26                 {BLK(1, 0), BLK(2, 0), BLK(1, 1), BLK(1, 2)}
27         },
28         /* L block */
29         {
30                 {BLK(0, 1), BLK(0, 2), BLK(1, 1), BLK(2, 1)},
31                 {BLK(0, 0), BLK(1, 0), BLK(1, 1), BLK(1, 2)},
32                 {BLK(0, 1), BLK(1, 1), BLK(2, 1), BLK(2, 0)},
33                 {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(2, 2)}
34         },
35         /* S block */
36         {
37                 {BLK(1, 1), BLK(2, 1), BLK(0, 2), BLK(1, 2)},
38                 {BLK(0, 0), BLK(0, 1), BLK(1, 1), BLK(1, 2)},
39                 {BLK(1, 1), BLK(2, 1), BLK(0, 2), BLK(1, 2)},
40                 {BLK(0, 0), BLK(0, 1), BLK(1, 1), BLK(1, 2)}
41         },
42         /* T block */
43         {
44                 {BLK(0, 1), BLK(1, 1), BLK(2, 1), BLK(1, 2)},
45                 {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(0, 1)},
46                 {BLK(0, 1), BLK(1, 1), BLK(2, 1), BLK(1, 0)},
47                 {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(2, 1)}
48         },
49         /* Z block */
50         {
51                 {BLK(0, 1), BLK(1, 1), BLK(1, 2), BLK(2, 2)},
52                 {BLK(0, 1), BLK(1, 1), BLK(1, 0), BLK(0, 2)},
53                 {BLK(0, 1), BLK(1, 1), BLK(1, 2), BLK(2, 2)},
54                 {BLK(0, 1), BLK(1, 1), BLK(1, 0), BLK(0, 2)}
55         }
56 };
57
58
59 #endif  /* PIECES_H_ */