From 31e85ee33b5755bb809859edf2a38984850d8d59 Mon Sep 17 00:00:00 2001 From: paulusja Date: Thu, 23 Apr 2026 17:07:45 +0200 Subject: [PATCH] Replace prey on hit. --- snake/prey.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/snake/prey.py b/snake/prey.py index 189d44d..ed19026 100644 --- a/snake/prey.py +++ b/snake/prey.py @@ -14,8 +14,21 @@ class Prey(GameObject): self.__bounding_box.center = [random.randint(0, max_val) for max_val in self.__window_size] - + + def __collides_with_other(self, game_objs: list[GameObject]) -> bool: + for obj in game_objs: + if not isinstance(obj, Prey) and self.get_bounding_boxes()[0].collidelist(obj.get_bounding_boxes()) > -1: + return True + def draw(self, surface: pygame.surface.Surface) -> None: pygame.draw.rect(surface, color=self.__color, rect=self.__bounding_box) + + def update(self, user_input: int, game_objs: list[GameObject]): + while self.__collides_with_other(game_objs): + self.__place_randomly() + + + def get_bounding_boxes(self) -> list[pygame.rect.Rect]: + return [self.__bounding_box]