-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path\
51 lines (43 loc) · 1.54 KB
/
\
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef GHOSTAI_H
#define GHOSTAI_H
#include <stdint.h>
#include "util.h"
#include "game.h"
#define GRID_WIDTH 8
#define PEN_TOPLEFT_X 88
#define PEN_TOPLEFT_Y 104
#define BLINKY_PEN_X (PEN_TOPLEFT_X + (GRID_WIDTH * 3))
#define BLINKY_PEN_Y (PEN_TOPLEFT_Y - (GRID_WIDTH * 1.5))
#define PINKY_PEN_X (PEN_TOPLEFT_X + (GRID_WIDTH * 1))
#define PINKY_PEN_Y (PEN_TOPLEFT_Y + (GRID_WIDTH * 1.5))
#define INKY_PEN_X (PEN_TOPLEFT_X + (GRID_WIDTH * 3))
#define INKY_PEN_Y (PEN_TOPLEFT_Y + (GRID_WIDTH * 1.5))
#define CLYDE_PEN_X (PEN_TOPLEFT_X + (GRID_WIDTH * 5))
#define CLYDE_PEN_Y (PEN_TOPLEFT_Y + (GRID_WIDTH * 1.5))
/*Definition for the four scatter points for blinky*/
#define BLINKY_CORNER_X ((PIXEL_WIDTH - (1.5*GRID_WIDTH))/8)
#define BLINKY_CORNER_Y (((1.5*GRID_WIDTH))/8)
/*Definition for the four scatter points for pinky*/
/*Definition for the four scatter points for inky*/
/*Definition for the four scatter points for clyde*/
typedef struct{
int x;
int y;
} coordinates;
void init_ghosts(game*);
void change_state(uint8_t, game*, ghost*,ghost_state);
void scatter_all(game*);
void chase_all(game*);
void frightened_all(game*);
void eaten_all(game*);
void pen_all(game*);
void shortest_path_helper(game*, volatile unsigned char*);
void shortest_path(ghost*,uint8_t*, int x, int y);
coordinates scatter_generate(uint8_t, uint8_t, ghost*);
void blinky_ai(game*, ghost*, int*, int*);
void pinky_ai(game*, ghost*);
void inky_ai(game*, ghost*);
void clyde_ai(game*, ghost*);
uint8_t legal_tile(int, int, uint8_t*);
void get_ghost_board_coord(ghost*, int*, int*);
#endif