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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
#include <iostream>
using namespace std;
/* Array containing tetromino pieces and their rotations */
const int PIECES[NUM_PIECES][NUM_ROTATIONS][NUM_BLOCKS][2] = {
{
/*
* TETROMINO_I
* 0000
* 1111
* 0000
* 0000
*/
{{1, 0}, {1, 1}, {1, 2}, {1, 3}},
{{0, 2}, {1, 2}, {2, 2}, {3, 2}},
{{2, 0}, {2, 1}, {2, 2}, {2, 3}},
{{0, 1}, {1, 1}, {2, 1}, {3, 1}}
},
{
/*
* TETROMINO_L
* 0010
* 1110
* 0000
* 0000
*/
{{1, 0}, {1, 1}, {1, 2}, {0, 2}},
{{0, 1}, {1, 1}, {2, 1}, {2, 2}},
{{1, 0}, {1, 1}, {1, 2}, {2, 0}},
{{0, 0}, {0, 1}, {1, 1}, {2, 1}}
},
{
/*
* TETROMINO_J
* 1000
* 1110
* 0000
* 0000
*/
{{0, 0}, {1, 0}, {1, 1}, {1, 2}},
{{0, 1}, {0, 2}, {1, 1}, {2, 1}},
{{1, 0}, {1, 1}, {1, 2}, {2, 2}},
{{0, 1}, {1, 1}, {2, 0}, {2, 1}}
},
{
/*
* TETROMINO_O
* 0110
* 0110
* 0000
* 0000
*/
{{0, 1}, {0, 2}, {1, 1}, {1, 2}},
{{0, 1}, {0, 2}, {1, 1}, {1, 2}},
{{0, 1}, {0, 2}, {1, 1}, {1, 2}},
{{0, 1}, {0, 2}, {1, 1}, {1, 2}}
},
{
/*
* TETROMINO_S
* 0110
* 1100
* 0000
* 0000
*/
{{0, 1}, {0, 2}, {1, 0}, {1, 1}},
{{0, 1}, {1, 1}, {1, 2}, {2, 2}},
{{1, 1}, {1, 2}, {2, 0}, {2, 1}},
{{0, 0}, {1, 0}, {1, 1}, {2, 1}},
},
{
/*
* TETROMINO_T
* 0100
* 1110
* 0000
* 0000
*/
{{0, 1}, {1, 0}, {1, 1}, {1, 2}},
{{0, 1}, {1, 1}, {1, 2}, {2, 1}},
{{1, 0}, {1, 1}, {1, 2}, {2, 1}},
{{0, 1}, {1, 0}, {1, 1}, {2, 1}}
},
{
/*
* TETROMINO_Z
* 1100
* 0110
* 0000
* 0000
*/
{{0, 0}, {0, 1}, {1, 1}, {1, 2}},
{{0, 2}, {1, 1}, {1, 2}, {2, 1}},
{{1, 0}, {1, 1}, {2, 1}, {2, 2}},
{{0, 1}, {1, 0}, {1, 1}, {2, 0}}
}
};
|