zmiany zgodne z TODO

This commit is contained in:
s444349 2020-04-05 18:22:28 +02:00
parent 06009e5cbd
commit bedad874f5
3 changed files with 71 additions and 7 deletions

43
game.py
View File

@ -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()

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB