#ifndef FIELD_H_SENTRY #define FIELD_H_SENTRY enum { field_width = 28, field_height = 30, 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, int symbol, int prison_status); 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, int frightened_counter); void display_score(int value); void display_ready(); struct coordinates; void display_hit(struct coordinates pac_position, const struct ghost_type *red_ghost, const struct ghost_type *pink_ghost, const struct ghost_type *blue_ghost, const struct ghost_type *orange_ghost); struct queue; void clear_or_revert_symbol(game_space field, struct coordinates position, enum select_character character, const struct queue *eaten_coins); void clear_energizer(game_space field, struct coordinates point); void clear_field(game_space *field); void clear_ready(); 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 check_coin_for_pac(game_space field, struct coordinates position, struct queue *eaten_coins); int field_has_energizer(const game_space field, int x, int y); void change_point_if_outside_tunnel(struct coordinates *point); int is_equal_points(struct coordinates first_point, struct coordinates second_point); void erase_life(int value); void erase_hit(struct coordinates point); #endif