#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, 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 display_score(int value); 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 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); 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); void erase_life(int value); #endif