SNAKE_STM32F3
Loading...
Searching...
No Matches
snake.h
Go to the documentation of this file.
1
11
12
13#ifndef INC_SNAKE_H_
14#define INC_SNAKE_H_
15
16#include <stdint.h>
17#include <stdbool.h>
18#include "2dspace.h"
19
20// SET GAME DIMENSIONS //
21
25#define GAME_DIM 8
26
30#define MAX_SNAKE_SIZE (GAME_DIM*GAME_DIM)
31
35typedef enum
36{
40}state_t;
41
57
65void snake_update(void);
66
74void snake_direction_request(direction_t requested_direction);
75
83void snake_init_request(int fruit_seed);
84
90void snake_move_request(void);
91
95bool snake_is_over(void);
96
102const snake_state *snake_get_state(void);
103
104#endif /* INC_SNAKE_H_ */
Definition of 2D space orientation types.
direction_t
Movement direction type.
Definition 2dspace.h:19
bool snake_is_over(void)
Checks if snake game state is GAME_OVER.
Definition snake.c:98
void snake_move_request(void)
Requests 1-tile move of snake in state machine.
Definition snake.c:93
void snake_direction_request(direction_t requested_direction)
Requests change of current snake direction in state machine.
Definition snake.c:82
void snake_update(void)
snake logic state machine function.
Definition snake.c:45
void snake_init_request(int fruit_seed)
Requests initialization of the snake game in state machine.
Definition snake.c:87
state_t
snake game state type
Definition snake.h:36
@ INIT
Definition snake.h:37
@ RUNNING
Definition snake.h:39
@ GAME_OVER
Definition snake.h:38
#define GAME_DIM
Width of the game in snake length units (should be consulted with dispay width).
Definition snake.h:25
const snake_state * snake_get_state(void)
Passes current snake game state.
Definition snake.c:103
#define MAX_SNAKE_SIZE
Maximum size that can be occupied by snake body parts.
Definition snake.h:30
Structure holding all snake info.
Definition snake.h:46
bool GROWTH
Definition snake.h:54
state_t state
Definition snake.h:55
direction_t move_dir
Definition snake.h:51
vec2_t head
Definition snake.h:48
uint8_t length
Definition snake.h:47
bool collision_map[GAME_DIM][GAME_DIM]
Definition snake.h:53
direction_t prev_move_dir
Definition snake.h:52
vec2_t fruit
Definition snake.h:50
vec2_t tail[MAX_SNAKE_SIZE]
Definition snake.h:49
X-Y position type.
Definition 2dspace.h:31