#ifndef FIELD_H_SENTRY #define FIELD_H_SENTRY enum { field_width = 28, field_height = 29, left_outside_tunnel_x = -1, right_outside_tunnel_x = field_width, door = '#', block = '/', coin = '.', energizer = '*' }; enum intersection_type { one_path = '1', two_paths = '2', three_paths = '3', yellow_block = 'y', 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); struct queue; struct coordinates; void clear_or_revert_symbol(game_space field, struct coordinates position, enum select_character character, struct queue *eaten_coins); 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); int field_has_coin(int x, int y); void change_point_if_outside_tunnel(struct coordinates *point); void clear_energizer(game_space field, struct coordinates point); int is_equal_points(struct coordinates first_point, struct coordinates second_point); void clear_field(game_space field); #endif