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 modele
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import random
|
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
|
# kolory
|
||||||
BLACK = (0, 0, 0)
|
BLACK = (0, 0, 0)
|
||||||
@ -37,27 +50,31 @@ smieciarka = modele.Smieciarka(10, 10)
|
|||||||
plansza[10, 10].setKolor(BLUE)
|
plansza[10, 10].setKolor(BLUE)
|
||||||
|
|
||||||
# kontenery
|
# 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(
|
kontener_plastik.setImage(pygame.image.load(
|
||||||
"resources/plansza/pojemnik_plastik.png"))
|
"resources/plansza/pojemnik_plastik.png"))
|
||||||
plansza[0, 0].setJestKontenerem(True)
|
plansza[0, 0].setJestKontenerem(True)
|
||||||
|
|
||||||
kontener_metal = modele.Kontener(0, 4)
|
kontener_metal = modele.Kontener(0, 4, "metal")
|
||||||
kontener_metal.setImage(pygame.image.load(
|
kontener_metal.setImage(pygame.image.load(
|
||||||
"resources/plansza/pojemnik_metal.png"))
|
"resources/plansza/pojemnik_metal.png"))
|
||||||
plansza[0, 4].setJestKontenerem(True)
|
plansza[0, 4].setJestKontenerem(True)
|
||||||
|
|
||||||
kontener_organiczne = modele.Kontener(2, 2)
|
kontener_organiczne = modele.Kontener(2, 2, "pozostale")
|
||||||
kontener_organiczne.setImage(pygame.image.load(
|
kontener_organiczne.setImage(pygame.image.load(
|
||||||
"resources/plansza/pojemnik_organiczne.png"))
|
"resources/plansza/pojemnik_organiczne.png"))
|
||||||
plansza[2, 2].setJestKontenerem(True)
|
plansza[2, 2].setJestKontenerem(True)
|
||||||
|
|
||||||
kontener_papier = modele.Kontener(4, 0)
|
kontener_papier = modele.Kontener(4, 0, "papier")
|
||||||
kontener_papier.setImage(pygame.image.load(
|
kontener_papier.setImage(pygame.image.load(
|
||||||
"resources/plansza/pojemnik_papier.png"))
|
"resources/plansza/pojemnik_papier.png"))
|
||||||
plansza[4, 0].setJestKontenerem(True)
|
plansza[4, 0].setJestKontenerem(True)
|
||||||
|
|
||||||
kontener_szklo = modele.Kontener(4, 4)
|
kontener_szklo = modele.Kontener(4, 4, "szklo")
|
||||||
kontener_szklo.setImage(pygame.image.load(
|
kontener_szklo.setImage(pygame.image.load(
|
||||||
"resources/plansza/pojemnik_szklo.png"))
|
"resources/plansza/pojemnik_szklo.png"))
|
||||||
plansza[4, 4].setJestKontenerem(True)
|
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']
|
'resources/plansza/domy/dom3.png', 'resources/plansza/domy/dom4.png', 'resources/plansza/domy/dom5.png']
|
||||||
|
|
||||||
wspolrzedne_domow = modele.generujWspolrzedneDomow()
|
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)):
|
for i in range(len(wspolrzedne_domow)):
|
||||||
dom = modele.Dom(wspolrzedne_domow[i, 0], wspolrzedne_domow[i, 1])
|
dom = modele.Dom(wspolrzedne_domow[i, 0], wspolrzedne_domow[i, 1])
|
||||||
dom.setImage(pygame.image.load(random.choice(doms_array)))
|
dom.setImage(pygame.image.load(random.choice(doms_array)))
|
||||||
plansza[wspolrzedne_domow[i, 0], wspolrzedne_domow[i, 1]].setJestDomem(True)
|
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)
|
all_sprites_list.add(dom)
|
||||||
|
|
||||||
# ustawienie wysypiska, rozmiar wysypiska 5x5
|
# ustawienie wysypiska, rozmiar wysypiska 5x5
|
||||||
@ -147,9 +173,14 @@ def game():
|
|||||||
|
|
||||||
obraz.blit(pygame.image.load(
|
obraz.blit(pygame.image.load(
|
||||||
"resources/plansza/wysypisko.jpg"), (5, 5))
|
"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)
|
all_sprites_list.draw(obraz)
|
||||||
smieciarka.rand_move()
|
smieciarka.rand_move()
|
||||||
# Go ahead and update the screen with what we've drawn.
|
# Go ahead and update the screen with what we've drawn.
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
|
|
||||||
pygame.quit()
|
pygame.quit()
|
||||||
|
35
modele.py
35
modele.py
@ -3,6 +3,8 @@ import game
|
|||||||
import random
|
import random
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import random
|
import random
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
|
||||||
# This sets the WIDTH and HEIGHT of each grid location
|
# This sets the WIDTH and HEIGHT of each grid location
|
||||||
WIDTH = 60
|
WIDTH = 60
|
||||||
@ -26,6 +28,11 @@ class Smieciarka(pygame.sprite.Sprite):
|
|||||||
self.y = y
|
self.y = y
|
||||||
self.image = pygame.image.load('resources/plansza/smieciarka.png')
|
self.image = pygame.image.load('resources/plansza/smieciarka.png')
|
||||||
self.ruch = 0
|
self.ruch = 0
|
||||||
|
self.plastik = []
|
||||||
|
self.szklo = []
|
||||||
|
self.papier = []
|
||||||
|
self.metal = []
|
||||||
|
self.pozostale = []
|
||||||
pygame.sprite.Sprite.__init__(self)
|
pygame.sprite.Sprite.__init__(self)
|
||||||
self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y, WIDTH,
|
self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y, WIDTH,
|
||||||
HEIGHT)
|
HEIGHT)
|
||||||
@ -76,6 +83,18 @@ class Smieciarka(pygame.sprite.Sprite):
|
|||||||
game.plansza[self.x, self.y].setKolor(BLUE)
|
game.plansza[self.x, self.y].setKolor(BLUE)
|
||||||
self.rect.y = self.y * HEIGHT + self.y * MARGIN
|
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):
|
class Dom(pygame.sprite.Sprite):
|
||||||
def __init__(self, x, y):
|
def __init__(self, x, y):
|
||||||
@ -85,19 +104,33 @@ class Dom(pygame.sprite.Sprite):
|
|||||||
self.image = pygame.image.__class__
|
self.image = pygame.image.__class__
|
||||||
self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y + MARGIN,
|
self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y + MARGIN,
|
||||||
WIDTH, HEIGHT)
|
WIDTH, HEIGHT)
|
||||||
|
self.smieci = []
|
||||||
|
|
||||||
def setImage(self, image):
|
def setImage(self, image):
|
||||||
self.image = 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):
|
class Kontener(pygame.sprite.Sprite):
|
||||||
def __init__(self, x, y):
|
def __init__(self, x, y, typ):
|
||||||
self.x = x
|
self.x = x
|
||||||
self.y = y
|
self.y = y
|
||||||
pygame.sprite.Sprite.__init__(self)
|
pygame.sprite.Sprite.__init__(self)
|
||||||
self.image = pygame.image.__class__
|
self.image = pygame.image.__class__
|
||||||
self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y + MARGIN,
|
self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y + MARGIN,
|
||||||
WIDTH, HEIGHT)
|
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):
|
def setImage(self, image):
|
||||||
self.image = 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