diff options
author | turnipgod | 2025-03-01 19:59:26 -0500 |
---|---|---|
committer | turnipgod | 2025-03-01 19:59:26 -0500 |
commit | 3fcec49d18769801d548e8acda0ed82fabb6c221 (patch) | |
tree | 19b962968396b2ba55638e83972d87ce35941db3 /inc | |
parent | 5a8765cddc3fc328f3cb22606688dd1ccb2f2f22 (diff) |
tetromino data
Diffstat (limited to 'inc')
-rw-r--r-- | inc/tetromino.h | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/inc/tetromino.h b/inc/tetromino.h new file mode 100644 index 0000000..ebe5930 --- /dev/null +++ b/inc/tetromino.h @@ -0,0 +1,212 @@ +enum TetrominoTypes { + I = 0, + J, + L, + O, + S, + T, + Z +}; + +enum Direction { + NORTH = 0, + EAST, + SOUTH, + WEST +}; + +struct Tetromino { + int size; + struct Color color; + int directions[4][4][4]; +}; + +struct Tetromino Tetrominos[7] = { + [I] = { + .size = 4, + .color = SKYBLUE, + .directions = { + [NORTH] = { + {0, 0, 0, 0}, + {1, 1, 1, 1}, + {0, 0, 0, 0}, + {0, 0, 0, 0} + + }, + [EAST] = { + {0, 0, 1, 0}, + {0, 0, 1, 0}, + {0, 0, 1, 0}, + {0, 0, 1, 0} + }, + [SOUTH] = { + {0, 0, 0, 0}, + {0, 0, 0, 0}, + {1, 1, 1, 1}, + {0, 0, 0, 0} + }, + [WEST] = { + {0, 1, 0, 0}, + {0, 1, 0, 0}, + {0, 1, 0, 0}, + {0, 1, 0, 0} + } + } + }, + [J] = { + .size = 3, + .color = BLUE, + .directions = { + [NORTH] = { + {1, 0, 0}, + {1, 1, 1}, + {0, 0, 0} + }, + [EAST] = { + {0, 1, 1}, + {0, 1, 0}, + {0, 1, 0} + }, + [SOUTH] = { + {0, 0, 0}, + {1, 1, 1}, + {0, 0, 1} + }, + [WEST] = { + {0, 1, 0}, + {0, 1, 0}, + {1, 1, 0} + } + } + }, + [L] = { + .size = 3, + .color = ORANGE, + .directions = { + [NORTH] = { + {0, 0, 1}, + {1, 1, 1}, + {0, 0, 0} + }, + [EAST] = { + {0, 1, 0}, + {0, 1, 0}, + {0, 1, 1} + }, + [SOUTH] = { + {0, 0, 0}, + {1, 1, 1}, + {1, 0, 0} + }, + [WEST] = { + {1, 1, 0}, + {0, 1, 0}, + {0, 1, 0} + } + } + }, + [O] = { + .size = 3, + .color = YELLOW, + .directions = { + [NORTH] = { + {0, 1, 1}, + {0, 1, 1}, + {0, 0, 0} + }, + [EAST] = { + {0, 1, 1}, + {0, 1, 1}, + {0, 0, 0} + }, + [SOUTH] = { + {0, 1, 1}, + {0, 1, 1}, + {0, 0, 0} + }, + [WEST] = { + {0, 1, 1}, + {0, 1, 1}, + {0, 0, 0} + } + } + }, + [S] = { + .size = 3, + .color = GREEN, + .directions = { + [NORTH] = { + {0, 1, 1}, + {1, 1, 0}, + {0, 0, 0} + }, + [EAST] = { + {0, 1, 0}, + {0, 1, 1}, + {0, 0, 1} + }, + [SOUTH] = { + {0, 0, 0}, + {0, 1, 1}, + {1, 1, 0} + }, + [WEST] = { + {1, 0, 0}, + {1, 1, 0}, + {0, 1, 0} + } + } + }, + [T] = { + .size = 3, + .color = PURPLE, + .directions = { + [NORTH] = { + {0, 1, 0}, + {1, 1, 1}, + {0, 0, 0} + }, + [EAST] = { + {0, 1, 0}, + {0, 1, 1}, + {0, 1, 0} + }, + [SOUTH] = { + {0, 0, 0}, + {1, 1, 1}, + {0, 1, 0} + }, + [WEST] = { + {0, 1, 0}, + {1, 1, 0}, + {0, 1, 0} + } + } + }, + [Z] = { + .size = 3, + .color = RED, + .directions = { + [NORTH] = { + {1, 1, 0}, + {0, 1, 1}, + {0, 0, 0} + }, + [EAST] = { + {0, 0, 1}, + {0, 1, 1}, + {0, 1, 0} + }, + [SOUTH] = { + {0, 0, 0}, + {1, 1, 0}, + {0, 1, 1} + }, + [WEST] = { + {0, 1, 0}, + {1, 1, 0}, + {1, 0, 0} + } + } + } +}; |