generowanie pozycji domow / usuniete profile sRGB z zdjec domow
19
game.py
@ -1,6 +1,4 @@
|
|||||||
# TODO: sledzenie pozycji smieciarki
|
# TODO: okienko z informacjami
|
||||||
# TODO: pole na ktorym wypisywane beda informacje
|
|
||||||
# TODO: obsluga kolizji
|
|
||||||
|
|
||||||
|
|
||||||
import pygame
|
import pygame
|
||||||
@ -69,22 +67,19 @@ plansza[4, 4].setJestKontenerem(True)
|
|||||||
doms_array = ['resources/plansza/domy/dom1.png', 'resources/plansza/domy/dom2.png',
|
doms_array = ['resources/plansza/domy/dom1.png', 'resources/plansza/domy/dom2.png',
|
||||||
'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']
|
||||||
|
|
||||||
temp = random.sample(range(5, 14))
|
wspolrzedne_domow = modele.generujWspolrzedneDomow()
|
||||||
k = 0
|
|
||||||
for i in range(0, 4):
|
|
||||||
dom = modele.Dom(temp[k], temp[k+1])
|
|
||||||
dom.setImage(pygame.image.load(random.choice(doms_array)))
|
|
||||||
plansza[temp[k], temp[k+1]].setJestDomem(True)
|
|
||||||
all_sprites_list.add(dom)
|
|
||||||
k = k+2
|
|
||||||
|
|
||||||
|
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)
|
||||||
|
all_sprites_list.add(dom)
|
||||||
|
|
||||||
# ustawienie wysypiska, rozmiar wysypiska 5x5
|
# ustawienie wysypiska, rozmiar wysypiska 5x5
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
for j in range(5):
|
for j in range(5):
|
||||||
plansza[i, j].setJestWysypiskiem(True)
|
plansza[i, j].setJestWysypiskiem(True)
|
||||||
|
|
||||||
|
|
||||||
all_sprites_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo,
|
all_sprites_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo,
|
||||||
smieciarka)
|
smieciarka)
|
||||||
|
|
||||||
|
34
modele.py
@ -1,6 +1,8 @@
|
|||||||
import pygame
|
import pygame
|
||||||
import game
|
import game
|
||||||
import random
|
import random
|
||||||
|
import numpy as np
|
||||||
|
import random
|
||||||
|
|
||||||
# This sets the WIDTH and HEIGHT of each grid location
|
# This sets the WIDTH and HEIGHT of each grid location
|
||||||
WIDTH = 60
|
WIDTH = 60
|
||||||
@ -43,15 +45,13 @@ class Smieciarka(pygame.sprite.Sprite):
|
|||||||
if self.x > 0:
|
if self.x > 0:
|
||||||
if game.plansza[self.x - 1, self.y].jestPrzeszkoda is not True:
|
if game.plansza[self.x - 1, self.y].jestPrzeszkoda is not True:
|
||||||
self.x -= 1
|
self.x -= 1
|
||||||
game.plansza[self.x,self.y].setKolor(BLUE)
|
game.plansza[self.x, self.y].setKolor(BLUE)
|
||||||
self.rect.x = MARGIN + self.x * WIDTH + self.x * MARGIN
|
self.rect.x = MARGIN + self.x * WIDTH + self.x * MARGIN
|
||||||
if self.ruch == 2:
|
if self.ruch == 2:
|
||||||
self.image = pygame.image.load(
|
self.image = pygame.image.load(
|
||||||
'resources/plansza/smieciarka.png')
|
'resources/plansza/smieciarka.png')
|
||||||
self.ruch = 1
|
self.ruch = 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def w_prawo(self):
|
def w_prawo(self):
|
||||||
if self.x < 14:
|
if self.x < 14:
|
||||||
if game.plansza[self.x + 1, self.y].jestPrzeszkoda is not True:
|
if game.plansza[self.x + 1, self.y].jestPrzeszkoda is not True:
|
||||||
@ -62,7 +62,6 @@ class Smieciarka(pygame.sprite.Sprite):
|
|||||||
self.image = pygame.transform.flip(self.image, True, False)
|
self.image = pygame.transform.flip(self.image, True, False)
|
||||||
self.ruch = 2
|
self.ruch = 2
|
||||||
|
|
||||||
|
|
||||||
def w_gore(self):
|
def w_gore(self):
|
||||||
if self.y > 0:
|
if self.y > 0:
|
||||||
if game.plansza[self.x, self.y - 1].jestPrzeszkoda is not True:
|
if game.plansza[self.x, self.y - 1].jestPrzeszkoda is not True:
|
||||||
@ -70,7 +69,6 @@ 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 w_dol(self):
|
def w_dol(self):
|
||||||
if self.y < 14:
|
if self.y < 14:
|
||||||
if game.plansza[self.x, self.y + 1].jestPrzeszkoda is not True:
|
if game.plansza[self.x, self.y + 1].jestPrzeszkoda is not True:
|
||||||
@ -140,3 +138,29 @@ class Kratka(pygame.sprite.Sprite):
|
|||||||
|
|
||||||
def setKolor(self, kolor):
|
def setKolor(self, kolor):
|
||||||
self.kolor = kolor
|
self.kolor = kolor
|
||||||
|
|
||||||
|
|
||||||
|
def generujWspolrzedneDomow():
|
||||||
|
unikalne = False
|
||||||
|
wspolrzedne_domow = np.array([[0 for i in range(2)] for j in range(15)])
|
||||||
|
while not unikalne:
|
||||||
|
for i in range(15):
|
||||||
|
wspolrzedne_domow[i, 0] = random.randrange(15)
|
||||||
|
if wspolrzedne_domow[i, 0] < 5:
|
||||||
|
wspolrzedne_domow[i, 1] = random.randrange(5, 15)
|
||||||
|
else:
|
||||||
|
wspolrzedne_domow[i, 1] = random.randrange(0, 15)
|
||||||
|
wspolrzedne_domow = np.unique(wspolrzedne_domow, axis=0)
|
||||||
|
|
||||||
|
j = 0
|
||||||
|
while True:
|
||||||
|
if j >= len(wspolrzedne_domow):
|
||||||
|
break
|
||||||
|
if np.sum(wspolrzedne_domow[j, 0] == wspolrzedne_domow[:, 0]) > 1:
|
||||||
|
wspolrzedne_domow = np.delete(wspolrzedne_domow, j, axis=0)
|
||||||
|
else:
|
||||||
|
j += 1
|
||||||
|
|
||||||
|
if len(wspolrzedne_domow) > 5:
|
||||||
|
unikalne = True
|
||||||
|
return wspolrzedne_domow
|
||||||
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 5.4 KiB |