Subversion Repositories Code-Repo

Rev

Rev 276 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
240 Kevin 1
#ifndef SNAKE_H
2
#define	SNAKE_H
3
 
4
#include "CUBE.h"
5
 
242 Kevin 6
#define SNAKE_BODY_COLOR        BLUE
7
#define SNAKE_HEAD_COLOR        RED
8
#define SNAKE_CANDY_COLOR       GREEN
9
#define SNAKE_COLLISION_COLOR   ORANGE
240 Kevin 10
 
276 Kevin 11
#define SNAKE_MAXIMUM_DELAY 800
12
#define SNAKE_MINIMUM_DELAY 300
240 Kevin 13
 
14
typedef struct {
276 Kevin 15
    uint8_t x;
16
    uint8_t y;
17
    uint8_t z;
240 Kevin 18
} SNAKE_POINT;
19
 
20
typedef struct {
21
    SNAKE_POINT body[CUBE_PIXELS];
22
    SNAKE_POINT direction;
23
    SNAKE_POINT candy_loc;
24
    uint8_t last_direction;
25
    uint32_t pos_head;
26
    uint32_t pos_tail;
27
    uint32_t length;
28
    uint32_t level;
29
    uint32_t delay;
30
} SNAKE_DATA;
31
 
32
void Snake_Init(SNAKE_DATA *data);
33
void Snake_Main(void);
276 Kevin 34
void Snake_Update_Direction(uint8_t controller, CTRL_BTN_STATUS value);
240 Kevin 35
void Snake_Update_Frame(void);
36
SNAKE_POINT Snake_Generate_Candy(void);
37
 
38
#endif	/* SNAKE_H */
39