zmiany zgodne z TODO
This commit is contained in:
parent
06009e5cbd
commit
bedad874f5
43
game.py
43
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()
|
||||
|
35
modele.py
35
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
|
||||
|
BIN
resources/plansza/jezioro.png
Normal file
BIN
resources/plansza/jezioro.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
Loading…
Reference in New Issue
Block a user