back to scratko.xyz
aboutsummaryrefslogtreecommitdiff
path: root/field.h
blob: 42992aa79c8ce457a52dd38d63fd225accfcf932 (plain)
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
#ifndef FIELD_H_SENTRY
#define FIELD_H_SENTRY

enum intersection_type {
    one_path    = '1',
    two_paths   = '2',
    three_paths = '3',
    direct_path
};

enum { 
    field_width = 29,
    field_height = 29
};

enum select_character { ghost_char, pac_char };

typedef char (*game_space)[field_width];
game_space get_new_field();

struct free_directions {
    int left;
    int right;
    int up;
    int down;
};

void print_field(game_space field);

void display_character(int y, int x, int symbol);

struct ghost_type;
void display_ghosts_on_field(struct ghost_type *red_ghost,
                             struct ghost_type *pink_ghost,
                             struct ghost_type *blue_ghost,
                             struct ghost_type *orange_ghost);

void clear_symbol(game_space field, int y, int x, 
                  enum select_character character);

enum intersection_type get_intersection(const game_space field, 
                                          struct ghost_type *ghost);

struct free_directions find_free_directions(game_space field, int y, int x);

#endif