From bedad874f500fc17941527f6f0e191108a03cab6 Mon Sep 17 00:00:00 2001 From: s444349 Date: Sun, 5 Apr 2020 18:22:28 +0200 Subject: [PATCH] zmiany zgodne z TODO --- game.py | 43 +++++++++++++++++++++++++++++----- modele.py | 35 ++++++++++++++++++++++++++- resources/plansza/jezioro.png | Bin 0 -> 40969 bytes 3 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 resources/plansza/jezioro.png diff --git a/game.py b/game.py index 2d99881..d0a52be 100644 --- a/game.py +++ b/game.py @@ -5,6 +5,19 @@ import pygame import modele import numpy as np import random +import os +import shutil + + +# obsluga bledu odmowy dostepu do folderu +def onerror(func, path, exc_info): + import stat + if not os.access(path, os.W_OK): + os.chmod(path, stat.S_IWUSR) + func(path) + else: + raise + # kolory BLACK = (0, 0, 0) @@ -37,27 +50,31 @@ smieciarka = modele.Smieciarka(10, 10) plansza[10, 10].setKolor(BLUE) # kontenery -kontener_plastik = modele.Kontener(0, 0) +if os.path.exists('resources/smieci w kontenerach'): + shutil.rmtree("resources/smieci w kontenerach", onerror=onerror) +os.makedirs('resources/smieci w kontenerach') + +kontener_plastik = modele.Kontener(0, 0, "plastik") kontener_plastik.setImage(pygame.image.load( "resources/plansza/pojemnik_plastik.png")) plansza[0, 0].setJestKontenerem(True) -kontener_metal = modele.Kontener(0, 4) +kontener_metal = modele.Kontener(0, 4, "metal") kontener_metal.setImage(pygame.image.load( "resources/plansza/pojemnik_metal.png")) plansza[0, 4].setJestKontenerem(True) -kontener_organiczne = modele.Kontener(2, 2) +kontener_organiczne = modele.Kontener(2, 2, "pozostale") kontener_organiczne.setImage(pygame.image.load( "resources/plansza/pojemnik_organiczne.png")) plansza[2, 2].setJestKontenerem(True) -kontener_papier = modele.Kontener(4, 0) +kontener_papier = modele.Kontener(4, 0, "papier") kontener_papier.setImage(pygame.image.load( "resources/plansza/pojemnik_papier.png")) plansza[4, 0].setJestKontenerem(True) -kontener_szklo = modele.Kontener(4, 4) +kontener_szklo = modele.Kontener(4, 4, "szklo") kontener_szklo.setImage(pygame.image.load( "resources/plansza/pojemnik_szklo.png")) plansza[4, 4].setJestKontenerem(True) @@ -68,11 +85,20 @@ doms_array = ['resources/plansza/domy/dom1.png', 'resources/plansza/domy/dom2.pn 'resources/plansza/domy/dom3.png', 'resources/plansza/domy/dom4.png', 'resources/plansza/domy/dom5.png'] wspolrzedne_domow = modele.generujWspolrzedneDomow() +domy_lista = pygame.sprite.Group() + +smieci_lista = [os.path.join(path, filename) + for path, dirs, files in os.walk("resources/smieci") + for filename in files] for i in range(len(wspolrzedne_domow)): dom = modele.Dom(wspolrzedne_domow[i, 0], wspolrzedne_domow[i, 1]) dom.setImage(pygame.image.load(random.choice(doms_array))) plansza[wspolrzedne_domow[i, 0], wspolrzedne_domow[i, 1]].setJestDomem(True) + for j in range(5): + dom.dodajSmiec(random.choice(smieci_lista)) + + domy_lista.add(dom) all_sprites_list.add(dom) # ustawienie wysypiska, rozmiar wysypiska 5x5 @@ -147,9 +173,14 @@ def game(): obraz.blit(pygame.image.load( "resources/plansza/wysypisko.jpg"), (5, 5)) + obraz.blit(pygame.image.load( + "resources/plansza/jezioro.png"), (395, 655)) + plansza[6, 10].setJestPrzeszkoda(True) + plansza[6, 11].setJestPrzeszkoda(True) + plansza[7, 10].setJestPrzeszkoda(True) + plansza[7, 11].setJestPrzeszkoda(True) all_sprites_list.draw(obraz) smieciarka.rand_move() # Go ahead and update the screen with what we've drawn. pygame.display.flip() - pygame.quit() diff --git a/modele.py b/modele.py index 309669a..dbf0ff4 100644 --- a/modele.py +++ b/modele.py @@ -3,6 +3,8 @@ import game import random import numpy as np import random +import os +import shutil # This sets the WIDTH and HEIGHT of each grid location WIDTH = 60 @@ -26,6 +28,11 @@ class Smieciarka(pygame.sprite.Sprite): self.y = y self.image = pygame.image.load('resources/plansza/smieciarka.png') self.ruch = 0 + self.plastik = [] + self.szklo = [] + self.papier = [] + self.metal = [] + self.pozostale = [] pygame.sprite.Sprite.__init__(self) self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y, WIDTH, HEIGHT) @@ -76,6 +83,18 @@ class Smieciarka(pygame.sprite.Sprite): game.plansza[self.x, self.y].setKolor(BLUE) self.rect.y = self.y * HEIGHT + self.y * MARGIN + def dodajPlastik(self, smiec): + self.plastik.append(smiec) + + def dodajSzklo(self, smiec): + self.szklo.append(smiec) + + def dodajPapier(self, smiec): + self.papier.append(smiec) + + def dodajMetal(self, smiec): + self.metal.append(smiec) + class Dom(pygame.sprite.Sprite): def __init__(self, x, y): @@ -85,19 +104,33 @@ class Dom(pygame.sprite.Sprite): self.image = pygame.image.__class__ self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y + MARGIN, WIDTH, HEIGHT) + self.smieci = [] def setImage(self, image): self.image = image + def dodajSmiec(self, smiec): + self.smieci.append(smiec) + + def usunSmiec(self, smiec): + self.smieci.remove(smiec) + class Kontener(pygame.sprite.Sprite): - def __init__(self, x, y): + def __init__(self, x, y, typ): self.x = x self.y = y pygame.sprite.Sprite.__init__(self) self.image = pygame.image.__class__ self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y + MARGIN, WIDTH, HEIGHT) + self.smieci = [] + self.typ = typ + os.makedirs("resources/smieci w kontenerach/" + self.typ) + + def dodajSmiec(self, smiec): + self.smieci.append(smiec) + shutil.copy(smiec, "resources/smieci w kontenerach/" + self.typ) def setImage(self, image): self.image = image diff --git a/resources/plansza/jezioro.png b/resources/plansza/jezioro.png new file mode 100644 index 0000000000000000000000000000000000000000..979761ae08f510383420fcb3b30114f6b8181676 GIT binary patch literal 40969 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 b^?wfl-6cQ$P3Hsa00000NkvXXu0mjfj;V5M literal 0 HcmV?d00001