This commit is contained in:
Rorikstr | Rust Dev 2025-09-29 15:20:21 +03:00
parent f8e1e664a7
commit 5fd528e22a
11 changed files with 78 additions and 67 deletions

View file

@ -13,6 +13,13 @@ typedef enum {
GameOver
} Automato_t;
typedef enum {
RightDown,
LeftDown,
Rotate,
DoNothing
} Moving_t;
typedef enum {
I = 0,
J,
@ -22,31 +29,32 @@ typedef enum {
T,
Z,
FIGURE_COUNT
} FigureType;
} Sprite_t;
typedef struct {
int x, y; // Позиция фигуры на поле
int mtrx[4][4]; // сама матрица
FigureType type; // Тип фигуры
Sprite_t sprite; // Тип фигуры
int rotation; // Поворот (03)
} Figure;
} Figure_t;
typedef struct {
Figure curr;
Figure next;
Figure_t curr;
Figure_t next;
Automato_t state;
Moving_t moving_type;
int field[FIELD_HEIGHT][FIELD_WIDTH];
int score;
int high_score;
int level;
int speed;
long long last_time;
// int score; // НЕ НУЖЕН, это уже есть в GameInfo_t
// int high_score; // НЕ НУЖЕН, это уже есть в GameInfo_t
// int level; // НЕ НУЖЕН, это уже есть в GameInfo_t
// int speed; // НЕ НУЖЕН, это уже есть в GameInfo_t
long long last_time; // нужно пояснение для чего это
} GameState_t;
GameState_t* get_game_state(void);
// Функции состояний
void do_start(void);
void do_init(void);
void do_spawn(void);
void do_move(void);
void do_moving(void);
@ -54,13 +62,13 @@ void do_attaching(void);
void do_gameover(void);
// Вспомогательные
void place_figure_on_field();
void place_figure();
int check_collision();
void clear_lines();
int is_game_over();
// Функции фигур
const int (*get_figure_shape(FigureType type, int rotation))[4];
const int (*get_figure_shape(Sprite_t sprite, int rotation))[4];
// Остальные фигуры...
const int (*i_fig_up())[4];