63 lines
804 B
C
63 lines
804 B
C
#ifndef ENGINE_HPP
|
|
#define ENGINE_HPP
|
|
|
|
#include <stddef.h>
|
|
#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
|