SNAKE_STM32F3
Toggle main menu visibility
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
35
typedef
enum
36
{
37
INIT
,
38
GAME_OVER
,
39
RUNNING
,
40
}
state_t
;
41
45
typedef
struct
46
{
47
uint8_t
length
;
48
vec2_t
head
;
49
vec2_t
tail
[
MAX_SNAKE_SIZE
];
50
vec2_t
fruit
;
51
direction_t
move_dir
;
52
direction_t
prev_move_dir
;
53
bool
collision_map
[
GAME_DIM
][
GAME_DIM
];
54
bool
GROWTH
;
55
state_t
state
;
56
}
snake_state
;
57
65
void
snake_update
(
void
);
66
74
void
snake_direction_request
(
direction_t
requested_direction);
75
83
void
snake_init_request
(
int
fruit_seed);
84
90
void
snake_move_request
(
void
);
91
95
bool
snake_is_over
(
void
);
96
102
const
snake_state
*
snake_get_state
(
void
);
103
104
#endif
/* INC_SNAKE_H_ */
2dspace.h
Definition of 2D space orientation types.
direction_t
direction_t
Movement direction type.
Definition
2dspace.h:19
snake_is_over
bool snake_is_over(void)
Checks if snake game state is GAME_OVER.
Definition
snake.c:98
snake_move_request
void snake_move_request(void)
Requests 1-tile move of snake in state machine.
Definition
snake.c:93
snake_direction_request
void snake_direction_request(direction_t requested_direction)
Requests change of current snake direction in state machine.
Definition
snake.c:82
snake_update
void snake_update(void)
snake logic state machine function.
Definition
snake.c:45
snake_init_request
void snake_init_request(int fruit_seed)
Requests initialization of the snake game in state machine.
Definition
snake.c:87
state_t
state_t
snake game state type
Definition
snake.h:36
INIT
@ INIT
Definition
snake.h:37
RUNNING
@ RUNNING
Definition
snake.h:39
GAME_OVER
@ GAME_OVER
Definition
snake.h:38
GAME_DIM
#define GAME_DIM
Width of the game in snake length units (should be consulted with dispay width).
Definition
snake.h:25
snake_get_state
const snake_state * snake_get_state(void)
Passes current snake game state.
Definition
snake.c:103
MAX_SNAKE_SIZE
#define MAX_SNAKE_SIZE
Maximum size that can be occupied by snake body parts.
Definition
snake.h:30
snake_state
Structure holding all snake info.
Definition
snake.h:46
snake_state::GROWTH
bool GROWTH
Definition
snake.h:54
snake_state::state
state_t state
Definition
snake.h:55
snake_state::move_dir
direction_t move_dir
Definition
snake.h:51
snake_state::head
vec2_t head
Definition
snake.h:48
snake_state::length
uint8_t length
Definition
snake.h:47
snake_state::collision_map
bool collision_map[GAME_DIM][GAME_DIM]
Definition
snake.h:53
snake_state::prev_move_dir
direction_t prev_move_dir
Definition
snake.h:52
snake_state::fruit
vec2_t fruit
Definition
snake.h:50
snake_state::tail
vec2_t tail[MAX_SNAKE_SIZE]
Definition
snake.h:49
vec2_t
X-Y position type.
Definition
2dspace.h:31
firmware
SNAKE_STM32F3
libs
snake
snake.h
Generated by
1.17.0