From 235f8481502263fcdb4823ff0bc4e8f831bc934d Mon Sep 17 00:00:00 2001 From: scratko Date: Thu, 11 Apr 2024 15:04:37 +0300 Subject: Removed the reverse motion for ghosts Yellow intersections added. --- pacman.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'pacman.c') diff --git a/pacman.c b/pacman.c index f2e0161..95d121d 100644 --- a/pacman.c +++ b/pacman.c @@ -13,6 +13,13 @@ enum { count_get_out_moves = 5 }; +static int is_up_move_blocked(const struct ghost_type *ghost, + enum intersection_type intersection) +{ + return intersection == yellow_block && (ghost->direction == left || + ghost->direction == right); +} + static void pathfinder_stage(game_space field, struct pacman pac, struct ghost_type *red_ghost, struct ghost_type *pink_ghost, @@ -48,6 +55,8 @@ static void pathfinder_stage(game_space field, struct pacman pac, break; } intersection = get_intersection(field, current_ghost); + if(is_up_move_blocked(current_ghost, intersection)) + continue; if(intersection != direct_path) redirect(field, intersection, current_ghost, target_point, search_method); -- cgit v1.2.3