#ifndef ENGINE_HPP #define ENGINE_HPP #include #define ROW 15 #define COL 21 typedef enum { UP, DOWN, LEFT, RIGHT } Direction; typedef struct { int x, y; } vec2; int equals(vec2* a, vec2* b); void set(vec2* vec2, int _x, int _y); typedef struct { unsigned char view[ROW][COL]; vec2 head; vec2 fruit; vec2 prev_head; int m_score; Direction dir; vec2* tail[(ROW * COL) - 1]; int tail_size; } Engine; void engine_init(Engine* engine); void engine_display(Engine* engine); int process_input(Direction* dir); int is_open(char* status, size_t len, Engine* engine); void determine_index_zero_pos(Engine* engine); void add_tail_and_respawn_fruit(Engine* engine); void move_tail_indicies(vec2** tail, int tail_size, vec2* prev_head, unsigned char (*view)[COL]); #endif