From 12c53aff3542770e895580122491d13f9261a38d Mon Sep 17 00:00:00 2001 From: Natalia Szymczak Date: Wed, 8 May 2024 21:18:55 +0200 Subject: [PATCH] =?UTF-8?q?Dodanie=20ilo=C5=9Bci=20jedzenia=20do=20agenta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent.py | 21 +++++++++++++++++++-- draw.py | 10 +++++++++- images/house.png | Bin 0 -> 6615 bytes main.py | 16 +++++++++++----- spawner.py | 2 +- 5 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 images/house.png diff --git a/agent.py b/agent.py index 19734b3..bcfc27f 100644 --- a/agent.py +++ b/agent.py @@ -8,6 +8,7 @@ class Agent: self.grid_size = grid_size self.image= pygame.image.load(image_path) self.image = pygame.transform.scale(self.image, (grid_size, grid_size)) + self._food = 0 def draw(self, screen, grid_size): # Obróć obrazek zgodnie z kierunkiem @@ -55,12 +56,28 @@ class Agent: self.istate = (self.x, self.y, self.direction) feed_animal(self, animals, goal) + take_food(self) def feed_animal(self, animals, goal): goal_x, goal_y = goal if self.x == goal_x and self.y == goal_y: for animal in animals: if animal.x == goal_x and animal.y == goal_y: - if animal.feed() == 'True': + if animal._feed < self._food : + self._food -= animal._feed animal._feed = 0 - print(animal.name, "fed with", animal.food) \ No newline at end of file + print(animal.name, "fed with", animal.food) + print("Current food level: ", self._food) + else: + animal._feed -= self._food + self._food = 0 + print(animal.name, "fed with", animal.food) + print("Current food level: ", self._food) + +def take_food(self): + house_x = 3 + house_y = 1 + if self.x == house_x and self.y == house_y: + if self._food == 0: + self._food = 15 + print("Agent took food and current food level is", self._food) diff --git a/draw.py b/draw.py index f032281..e893031 100644 --- a/draw.py +++ b/draw.py @@ -11,4 +11,12 @@ def draw_grid(const): for y in range(0, const.GRID_HEIGHT * const.GRID_SIZE, const.GRID_SIZE): for x in range(0, const.GRID_WIDTH * const.GRID_SIZE, const.GRID_SIZE): rect = pygame.Rect(x, y, const.GRID_SIZE, const.GRID_SIZE) - pygame.draw.rect(const.screen, const.BLACK, rect, 1) \ No newline at end of file + pygame.draw.rect(const.screen, const.BLACK, rect, 1) + +def draw_house(const): + X = 2 + Y = 0 + image_path = 'images/house.png' + image_surface = pygame.image.load(image_path) # Wczytanie obrazka do obiektu Surface + scaled_image = pygame.transform.scale(image_surface, (const.GRID_SIZE * 2, const.GRID_SIZE * 2)) + const.screen.blit(scaled_image, (X * const.GRID_SIZE, Y * const.GRID_SIZE)) diff --git a/images/house.png b/images/house.png new file mode 100644 index 0000000000000000000000000000000000000000..9195278fccaf957dff121fc7751f4bbc996e179d GIT binary patch literal 6615 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