From 12b431e748d329fd8d687c959863696c02dfea18 Mon Sep 17 00:00:00 2001 From: LuminoX Date: Sun, 24 Mar 2024 14:55:49 +0100 Subject: [PATCH] =?UTF-8?q?dodano=20klatki=20na=20wybiegach,=20obiekty=20b?= =?UTF-8?q?lokuj=C4=85=20scie=C5=BCk=C4=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent.py | 10 ++++---- enclosure.py | 58 ++++++++++++++++++++++++++++++++++++++++++++ images/fenceHor.png | Bin 0 -> 19045 bytes images/fenceVer.png | Bin 0 -> 72222 bytes main.py | 27 +++++++++++++++++---- 5 files changed, 85 insertions(+), 10 deletions(-) create mode 100644 enclosure.py create mode 100644 images/fenceHor.png create mode 100644 images/fenceVer.png diff --git a/agent.py b/agent.py index a39f4e8..bb463e2 100644 --- a/agent.py +++ b/agent.py @@ -16,15 +16,15 @@ class Agent: self.x += dx self.y += dy - def handle_event(self, event, grid_height,grid_width, animals): + def handle_event(self, event, grid_height,grid_width, animals, blocked_fields): if event.type == pygame.KEYDOWN: - if event.key == pygame.K_UP and self.y > 0: + if event.key == pygame.K_UP and self.y > 0 and (self.x, self.y-1) not in blocked_fields: self.move(0, -1) - elif event.key == pygame.K_DOWN and self.y < grid_height - 1: + elif event.key == pygame.K_DOWN and self.y < grid_height - 1 and (self.x, self.y+1) not in blocked_fields: self.move(0, 1) - elif event.key == pygame.K_LEFT and self.x > 0: + elif event.key == pygame.K_LEFT and self.x > 0 and (self.x-1, self.y) not in blocked_fields: self.move(-1, 0) - elif event.key == pygame.K_RIGHT and self.x < grid_width - 1: + elif event.key == pygame.K_RIGHT and self.x < grid_width - 1 and (self.x+1, self.y) not in blocked_fields: self.move(1, 0) for animal in animals: diff --git a/enclosure.py b/enclosure.py new file mode 100644 index 0000000..dc80a67 --- /dev/null +++ b/enclosure.py @@ -0,0 +1,58 @@ +import pygame + +class Enclosure: + def __init__(self, x1, y1, x2, y2, type, imageH, imageV): + self.x1 = x1 - 1 + self.y1 = y1 - 1 + #(x1,y1) - wierzchołek przekątnej + self.x2 = x2 - 1 + self.y2 = y2 - 1 + #(x2,y2) - 2 wierzchołek przekątnej + self.type = type #hot/cold/medium + self.imageH = imageH + self.imageV = imageV + + def draw(self, screen, grid_size, blocked_fields): + self.imageH = pygame.transform.scale(self.imageH, (grid_size, grid_size)) + self.imageV = pygame.transform.scale(self.imageV, (grid_size, grid_size)) + if self.x1 < self.x2: + for i in range(self.x1, self.x2+1): + screen.blit(self.imageH, (i * grid_size, self.y1 * grid_size)) + blocked_fields.add((i, self.y1)) + screen.blit(self.imageH, (i * grid_size, self.y2 * grid_size)) + blocked_fields.add((i, self.y2)) + if self.y1 < self.y2: + for j in range(self.y1, self.y2+1): + screen.blit(self.imageH, (self.x1 * grid_size, j * grid_size)) + blocked_fields.add((self.x1, j)) + screen.blit(self.imageH, (self.x2 * grid_size, j * grid_size)) + blocked_fields.add((self.x2, j)) + if self.y1 > self.y2: + for j in range(self.y2, self.y1+1): + screen.blit(self.imageH, (self.x1 * grid_size, j * grid_size)) + blocked_fields.add((self.x1, j)) + screen.blit(self.imageH, (self.x2 * grid_size, j * grid_size)) + blocked_fields.add((self.x2, j)) + if self.x1 > self.x2: + for i in range(self.x2, self.x1+1): + screen.blit(self.imageH, (i * grid_size, self.y1 * grid_size)) + blocked_fields.add((i, self.y1)) + screen.blit(self.imageH, (i * grid_size, self.y2 * grid_size)) + blocked_fields.add((i, self.y2)) + if self.y1 < self.y2: + for j in range(self.y1, self.y2+1): + screen.blit(self.imageH, (self.x1 * grid_size, j * grid_size)) + blocked_fields.add((self.x1, j)) + screen.blit(self.imageH, (self.x2 * grid_size, j * grid_size)) + blocked_fields.add((self.x2, j)) + if self.y1 > self.y2: + for j in range(self.y2, self.y1+1): + screen.blit(self.imageH, (self.x1 * grid_size, j * grid_size)) + blocked_fields.add((self.x1, j)) + screen.blit(self.imageH, (self.x2 * grid_size, j * grid_size)) + blocked_fields.add((self.x2, j)) + + + + + diff --git a/images/fenceHor.png b/images/fenceHor.png new file mode 100644 index 0000000000000000000000000000000000000000..8beb9026635f100831670eda5ebbefd3e4d3fe5f GIT binary patch literal 19045 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 Djc^=r literal 0 HcmV?d00001 diff --git a/images/fenceVer.png b/images/fenceVer.png new file mode 100644 index 0000000000000000000000000000000000000000..26996184c66823e392396a1df1b977462bc08dec GIT binary patch literal 72222 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 UE;GCV0A{E@*LYT@X!-7c02;#{s{jB1 literal 0 HcmV?d00001 diff --git a/main.py b/main.py index bf1c208..ca708be 100644 --- a/main.py +++ b/main.py @@ -6,12 +6,13 @@ from penguin import Penguin from parrot import Parrot from bear import Bear from agent import Agent +from enclosure import Enclosure BLACK = (0, 0, 0) GRID_SIZE = 50 -GRID_WIDTH = 20 -GRID_HEIGHT = 10 +GRID_WIDTH = 30 +GRID_HEIGHT = 15 pygame.init() @@ -23,8 +24,11 @@ pygame.display.set_caption("Mini Zoo") background_image = pygame.image.load('images/tło.jpg') background_image = pygame.transform.scale(background_image, WINDOW_SIZE) +fenceH = pygame.image.load('images/fenceHor.png') +fenceV = pygame.image.load('images/fenceVer.png') +blocked = set() @@ -37,13 +41,25 @@ an4 = Elephant(4,3) Animals = [an1, an2, an3, an4, old_an1, old_an2] +en1 = Enclosure(1,5,9,11,"medium", fenceH, fenceV) +en2 = Enclosure(29,3, 13,1, 'medium', fenceH, fenceV) +en3 = Enclosure(11,5, 16,11, 'cold', fenceH, fenceV) +en4 = Enclosure(19,11, 30,5, 'hot', fenceH, fenceV) +en5 = Enclosure(4,13, 28,15, 'cold', fenceH, fenceV) + + +Enclosures = [en1, en2, en3, en4, en5] + + def draw_grid(): for y in range(0, GRID_HEIGHT * GRID_SIZE, GRID_SIZE): for x in range(0, GRID_WIDTH * GRID_SIZE, GRID_SIZE): rect = pygame.Rect(x, y, GRID_SIZE, GRID_SIZE) pygame.draw.rect(screen, BLACK, rect, 1) - +def draw_enclosures(set): + for enclosure in Enclosures: + enclosure.draw(screen, GRID_SIZE, blocked) def draw_Animals(): for Animal in Animals: @@ -64,13 +80,14 @@ def main(): if event.type == pygame.QUIT: pygame.quit() sys.exit() - agent.handle_event(event,GRID_HEIGHT,GRID_WIDTH,Animals) + agent.handle_event(event,GRID_HEIGHT,GRID_WIDTH,Animals, blocked) screen.blit(background_image,(0,0)) draw_grid() - draw_Animals() + draw_enclosures(blocked) + #draw_Animals()