213 lines
2.7 KiB
C++
213 lines
2.7 KiB
C++
// Celebrating tetris by Ley 2024
|
|
|
|
#pragma once
|
|
|
|
#include <SFML/Graphics/Color.hpp>
|
|
|
|
struct Tetrominos {
|
|
enum Names {
|
|
I,
|
|
J,
|
|
L,
|
|
O,
|
|
S,
|
|
T,
|
|
Z,
|
|
None
|
|
};
|
|
|
|
// [shape name][rot pos][y][z]
|
|
constexpr static int shapes[8][4][4][4] = {
|
|
{ // I
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{1, 1, 1, 1},
|
|
{0, 0, 0, 0}
|
|
},
|
|
{
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 0}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{1, 1, 1, 1},
|
|
{0, 0, 0, 0}
|
|
},
|
|
{
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 0}
|
|
}
|
|
},
|
|
{ // J
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 1, 1, 1},
|
|
{0, 0, 0, 1}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 1, 1, 0}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 1, 0, 0},
|
|
{0, 1, 1, 1},
|
|
{0, 0, 0, 0}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 1},
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 0}
|
|
}
|
|
},
|
|
{ // L
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 1, 1, 1},
|
|
{0, 1, 0, 0}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 1, 1, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 0}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 1},
|
|
{0, 1, 1, 1},
|
|
{0, 0, 0, 0}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 1}
|
|
}
|
|
},
|
|
{ // 0
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 1},
|
|
{0, 0, 1, 1}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 1},
|
|
{0, 0, 1, 1}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 1},
|
|
{0, 0, 1, 1}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 1},
|
|
{0, 0, 1, 1}
|
|
}
|
|
},
|
|
{ // S
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 1},
|
|
{0, 1, 1, 0}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 1},
|
|
{0, 0, 0, 1}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 1},
|
|
{0, 1, 1, 0}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 1},
|
|
{0, 0, 0, 1}
|
|
}
|
|
},
|
|
{ // T
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 1, 1, 1},
|
|
{0, 0, 1, 0}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 1, 1, 0},
|
|
{0, 0, 1, 0}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 1, 1, 1},
|
|
{0, 0, 0, 0}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 0, 1, 1},
|
|
{0, 0, 1, 0}
|
|
}
|
|
},
|
|
{ // Z
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 1, 1, 0},
|
|
{0, 0, 1, 1}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 1, 1, 0},
|
|
{0, 1, 0, 0}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 1, 1, 0},
|
|
{0, 0, 1, 1}
|
|
},
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 1, 0},
|
|
{0, 1, 1, 0},
|
|
{0, 1, 0, 0}
|
|
}
|
|
},
|
|
{ // None
|
|
{
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0},
|
|
{0, 0, 0, 0}
|
|
}
|
|
}
|
|
};
|
|
};
|