back to scratko.xyz
aboutsummaryrefslogtreecommitdiff
path: root/field.h
blob: 7ac53e80a0f3a6c3414e53b3777dbec611119ed5 (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
47
48
49
50
51
52
53
#ifndef FIELD_H_SENTRY
#define FIELD_H_SENTRY

enum {
    field_width  = 28,
    field_height = 29,
    door = '#',
    block = '/'
};

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

enum select_character {
    ghost_char = '&',
    pac_char = 'C'
};

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, enum select_character 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 eat_or_revert_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);

int is_obstacle(game_space field, int x, int y);

#endif