From 1cc7c44a0b592ea32ffcf25caf15ad4422cc898a Mon Sep 17 00:00:00 2001 From: Adam Osiowy Date: Sun, 29 Mar 2020 16:12:46 +0200 Subject: [PATCH 1/8] dodane pliki main i modele --- __pycache__/game.cpython-37.pyc | Bin 0 -> 2240 bytes __pycache__/modele.cpython-37.pyc | Bin 0 -> 2067 bytes game.py | 237 +++++++++++++----------------- main.py | 10 ++ modele.py | 67 +++++++++ 5 files changed, 178 insertions(+), 136 deletions(-) create mode 100644 __pycache__/game.cpython-37.pyc create mode 100644 __pycache__/modele.cpython-37.pyc create mode 100644 main.py create mode 100644 modele.py diff --git a/__pycache__/game.cpython-37.pyc b/__pycache__/game.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d080ddbbacceeaea365f8fbdef8c52ed67ff8f5c GIT binary patch literal 2240 zcmZuy&2!sC6yKFrvLb&bO`E14kkS@#Y15uKl)%s=ZsJMnmc$uPcLE;aRgGd>Am0Y?R#(E?%K=wyouoX z>*rTrHKq~zTN)>i0?Oy`hU*|0V%SCW_=_oK3RRd&RYoXb8r7Iib(WzSW>5p(DK+hMr=qNm{*{2tnu-&T6p+3EO!Rc#iANepQV`>n zoUWdT(GqAQ4TSSMfGtqcX9lEP_zJw?TbLT51Tz>zWgvBh!2lgc>Mlt%rVeq8n`F!o zV3aYV0i%o=o$0`+V#Th`*5QAo%49s{c$+pvZhYJ&Y zc94yyVsjoPS*RLf9^pN+f%e`u5CeuO^N1-+5Op_~2UsOuUl0$+;FIQtrUGuq&t5nPIn+KB=^{?tO0y-$>O*=myZF`YtE&TRV*RflU#XHvHdS730omOX| zKeNUiw$So@&K%E*?C{~js3X;?b_7b znxvq{h7Z|2n+rYYwXLo#G^cB|Z9!b$VnPoC?nD5taeqG$s>PTfj^{)|{cs`qM|7Yt@?2*DKYv z^}5iYVu+X7sJuw0sU5o~^o{0|%HulK51Ouh-~-#-l-@LR&x2<4o~CT3K*@65=J7s; z#|UY|X%Z^;4}{+G-Tkgd^{~Zl+k<~W--E4b$*tkn;M@o`?KQah{1?PO0qCEPS03(c zhc*v)EN1zkv-7;y`o`kj=Nv9wD++hEX!YLdA={DXYBA^uB9%Fa5Pk;&sX3g(h5x^b ziD4)+APZPm3_@^0mHK6pQ{^D4NlaXlEG{UfQoSkq?lI17c6@Fj3+?3+B6t|?1mp6@* iw&jeF|JTA;f@`qv+Mmgb9!g&W8!Ew*A$3@dq5cOV(p!H3 literal 0 HcmV?d00001 diff --git a/__pycache__/modele.cpython-37.pyc b/__pycache__/modele.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..530bc36d41bad1c78387e6fa4a63f4b469bcd683 GIT binary patch literal 2067 zcmb7F+iu%N5Zxu07s;|4Cu*Dm=@rNW3)FFd0u72FNSd^^(N+j-Cp8421i__k$&{!r zX{Z+T5TN;tJjjpvg#60B_DR3cr=D5rV!LtEuCX(t;a+CX%p8BWyj*1%`>$XA`qpLa zPx>(%0>&fEoP=bOr>x1O)#R9#w43%OlR`SLm~;}>5gq3byXnH`N)JA7?(-zyWr07z zDXcMh06B3WV){KB7K}%j`PUE$!yOEF;HFosX-iuQXxt@TXh(X|hjwK}R-rw)g!5~< zy4!6haXV7SQEcNF8l>?q_5?FOf*A1;3)#qml>474!6@l=EsXEkO_n&;*dY&gLZ$&c7 z@^QY8zZEmr`S8YK$NDVH zm>x=lH08qN;ROuBQu1S=c1BE)ZQW-UGE*QIz}q53jb*TfWg}~-GHD-M>Zii#xMNQW zlR4L9P8igkhQW41_f4p%u1-SWm&jbhD)j-0>m;Zjlt;oRQGp1!x07$VO|r|_fs5%+L+-`)&%(r)Pd2n%0N9#`^;qAye|-@&ebXoQzoyJ(klW- z`VKRd+@ZLsJIeH3N*t|tZ@_F3aGALG1^f|i`~LwugHUGamzUzbb^&25Xav3nPxL@3 z;E8G&qJ2+NvTI@Z+ews`UraBnTNKG{5|lsn35i9S8;j~&(f@)a%$(Z8=YGYf;TV4m z*L=*0oc8{c$U%%k`#)yABIzaS-88+AotJ64BgQD{DJ8oGUk~I9nx0a!Kc(c#)LT+A zyoFa(3@ukpx$s7?v|z-t(dl7|I=IBdw2L7GQ$nVgOdZ)J4b1uU98v}(V#j-!2BaA~ zZt&si?7eedY@kv 0: - self.x -= 1 - self.rect.x = MARGIN + self.x * WIDTH + self.x * MARGIN - if self.ruch == 2: - self.image = pygame.image.load('resources/smieciarka.png') - self.ruch = 1 - - def w_prawo(self): - if self.x < 14: - self.x += 1 - self.rect.x = MARGIN + self.x * WIDTH + self.x * MARGIN - if self.ruch == 1: - self.image = pygame.transform.flip(smieciarka.image, True, False) - self.ruch = 2 - - def w_gore(self): - if self.y > 0: - self.y -= 1 - self.rect.y = self.y * HEIGHT + self.y * MARGIN - - def w_dol(self): - if self.y < 14: - self.y += 1 - self.rect.y = self.y * HEIGHT + self.y * MARGIN - - -class Kontener(pygame.sprite.Sprite): - def __init__(self, x, y): - self.x = x - self.y = y - pygame.sprite.Sprite.__init__(self) - self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y + MARGIN, - WIDTH, HEIGHT) - - -# Define some colors +# kolory BLACK = (0, 0, 0) WHITE = (255, 255, 255) GREEN = (0, 255, 0) @@ -56,108 +9,120 @@ RED = (255, 0, 0) BLUE = (0, 0, 255) GREY = (128, 128, 128) -# This sets the WIDTH and HEIGHT of each grid location +# wysokosc i szerokosc kazdej kratki WIDTH = 60 HEIGHT = 60 -# This sets the margin between each cell +# margines pomiedzy kratkami MARGIN = 5 -# Create a 2 dimensional array. A two dimensional -# array is simply a list of lists. -grid = [] -for row in range(100): - # Add an empty array that will hold each cell - # in this row - grid.append([]) - for column in range(100): - grid[row].append(0) # Append a cell - -# Set row 1, cell 5 to one. (Remember rows and -# column numbers start at zero.) -grid[0][0] = 1 - -# Set the HEIGHT and WIDTH of the screen +# rozmiar okna WINDOW_SIZE = [980, 980] -screen = pygame.display.set_mode(WINDOW_SIZE) -# Set title of screen -pygame.display.set_caption("Inteligentna śmieciarka") -# Loop until the user clicks the close button. -done = False +def game(): -# Used to manage how fast the screen updates -clock = pygame.time.Clock() + # TWORZENIE OBIEKTOW + smieciarka = modele.Smieciarka(10, 10) + kontener_plastik = modele.Kontener(0, 0) + kontener_plastik.image = pygame.image.load("resources/pojemnik_plastik.png") + kontener_metal = modele.Kontener(0, 4) + kontener_metal.image = pygame.image.load("resources/pojemnik_metal.png") + kontener_organiczne = modele.Kontener(2, 2) + kontener_organiczne.image = pygame.image.load("resources/pojemnik_organiczne.png") + kontener_papier = modele.Kontener(4, 0) + kontener_papier.image = pygame.image.load("resources/pojemnik_papier.png") + kontener_szklo = modele.Kontener(4, 4) + kontener_szklo.image = pygame.image.load("resources/pojemnik_szklo.png") -smieciarka = Smieciarka(10, 10) -kontener_plastik = Kontener(0, 0) -kontener_plastik.image = pygame.image.load("resources/pojemnik_plastik.png") -kontener_metal = Kontener(0, 4) -kontener_metal.image = pygame.image.load("resources/pojemnik_metal.png") -kontener_organiczne = Kontener(2, 2) -kontener_organiczne.image = pygame.image.load("resources/pojemnik_organiczne.png") -kontener_papier = Kontener(4, 0) -kontener_papier.image = pygame.image.load("resources/pojemnik_papier.png") -kontener_szklo = Kontener(4, 4) -kontener_szklo.image = pygame.image.load("resources/pojemnik_szklo.png") -kontener_list = pygame.sprite.Group() -smieciarka_list = pygame.sprite.Group() -all_sprites_list = pygame.sprite.Group() -kontener_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo) -smieciarka_list.add(smieciarka) -all_sprites_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo, smieciarka) + kontener_list = pygame.sprite.Group() + smieciarka_list = pygame.sprite.Group() + all_sprites_list = pygame.sprite.Group() -# -------- Main Program Loop ----------- -while not done: - for event in pygame.event.get(): # User did something - if event.type == pygame.QUIT: # If user clicked close - done = True # Flag that we are done so we exit this loop - elif event.type == pygame.MOUSEBUTTONDOWN: - # User clicks the mouse. Get the position - pos = pygame.mouse.get_pos() - # Change the x/y screen coordinates to grid coordinates - column = pos[0] // (WIDTH + MARGIN) - row = pos[1] // (HEIGHT + MARGIN) - # Set that location to one - grid[row][column] = 1 - print("Click ", pos, "Grid coordinates: ", row, column) - elif event.type == pygame.KEYDOWN: - if event.key == pygame.K_LEFT: - smieciarka.w_lewo() - if event.key == pygame.K_RIGHT: - smieciarka.w_prawo() - if event.key == pygame.K_UP: - smieciarka.w_gore() - if event.key == pygame.K_DOWN: - smieciarka.w_dol() + kontener_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo) + smieciarka_list.add(smieciarka) + all_sprites_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo, + smieciarka) - # Set the screen background - screen.fill(BLACK) + pygame.init() - # Draw the grid - for row in range(15): - for column in range(15): - color = GREY - # if grid[row][column] == 1: - # color = BLUE - pygame.draw.rect(screen, - color, - [(MARGIN + WIDTH) * column + MARGIN, - (MARGIN + HEIGHT) * row + MARGIN, - WIDTH, - HEIGHT]) - screen.blit(pygame.image.load("resources/wysypisko.jpg"), (5, 5)) - all_sprites_list.draw(screen) + # Create a 2 dimensional array. A two dimensional + # array is simply a list of lists. + grid = [] + for row in range(100): + # Add an empty array that will hold each cell + # in this row + grid.append([]) + for column in range(100): + grid[row].append(0) # Append a cell - # Limit to 60 frames per second - clock.tick(60) + # Set row 0, cell 0 to one. (Remember rows and + # column numbers start at zero.) + grid[0][0] = 1 - # Go ahead and update the screen with what we've drawn. - pygame.display.flip() + # Set the HEIGHT and WIDTH of the screen + screen = pygame.display.set_mode(WINDOW_SIZE) -# Be IDLE friendly. If you forget this line, the program will 'hang' -# on exit. -pygame.quit() + # Set title of screen + pygame.display.set_caption("Inteligentna śmieciarka") + + # Loop until the user clicks the close button. + done = False + + # Used to manage how fast the screen updates + clock = pygame.time.Clock() + + + # -------- Main Program Loop ----------- + while not done: + for event in pygame.event.get(): # User did something + if event.type == pygame.QUIT: # If user clicked close + done = True # Flag that we are done so we exit this loop + elif event.type == pygame.MOUSEBUTTONDOWN: + # User clicks the mouse. Get the position + pos = pygame.mouse.get_pos() + # Change the x/y screen coordinates to grid coordinates + column = pos[0] // (WIDTH + MARGIN) + row = pos[1] // (HEIGHT + MARGIN) + # Set that location to one + grid[row][column] = 1 + print("Click ", pos, "Grid coordinates: ", row, column) + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_LEFT: + smieciarka.w_lewo() + if event.key == pygame.K_RIGHT: + smieciarka.w_prawo() + if event.key == pygame.K_UP: + smieciarka.w_gore() + if event.key == pygame.K_DOWN: + smieciarka.w_dol() + + # Set the screen background + screen.fill(BLACK) + + # Draw the grid + for row in range(15): + for column in range(15): + color = GREY + # if grid[row][column] == 1: + # color = BLUE + pygame.draw.rect(screen, + color, + [(MARGIN + WIDTH) * column + MARGIN, + (MARGIN + HEIGHT) * row + MARGIN, + WIDTH, + HEIGHT]) + screen.blit(pygame.image.load("resources/wysypisko.jpg"), (5, 5)) + all_sprites_list.draw(screen) + + # Limit to 60 frames per second + clock.tick(60) + + # Go ahead and update the screen with what we've drawn. + pygame.display.flip() + + # Be IDLE friendly. If you forget this line, the program will 'hang' + # on exit. + pygame.quit() diff --git a/main.py b/main.py new file mode 100644 index 0000000..0a8e980 --- /dev/null +++ b/main.py @@ -0,0 +1,10 @@ +import pygame +import game + + +def main(): + print("poczatek programu") + + +if __name__ == '__main__': + main() diff --git a/modele.py b/modele.py new file mode 100644 index 0000000..0cb18be --- /dev/null +++ b/modele.py @@ -0,0 +1,67 @@ +import pygame + +# This sets the WIDTH and HEIGHT of each grid location +WIDTH = 60 +HEIGHT = 60 + +# This sets the margin between each cell +MARGIN = 5 + + +class Smieciarka(pygame.sprite.Sprite): + def __init__(self, x, y): + self.x = x + self.y = y + self.image = pygame.image.load('resources/smieciarka.png') + self.ruch = 0 + pygame.sprite.Sprite.__init__(self) + self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y, WIDTH, + HEIGHT) + + def w_lewo(self): + if self.x > 0: + self.x -= 1 + self.rect.x = MARGIN + self.x * WIDTH + self.x * MARGIN + if self.ruch == 2: + self.image = pygame.image.load('resources/smieciarka.png') + self.ruch = 1 + + def w_prawo(self): + if self.x < 14: + self.x += 1 + self.rect.x = MARGIN + self.x * WIDTH + self.x * MARGIN + if self.ruch == 1: + self.image = pygame.transform.flip(self.image, True, False) + self.ruch = 2 + + def w_gore(self): + if self.y > 0: + self.y -= 1 + self.rect.y = self.y * HEIGHT + self.y * MARGIN + + def w_dol(self): + if self.y < 14: + self.y += 1 + self.rect.y = self.y * HEIGHT + self.y * MARGIN + + +class Kontener(pygame.sprite.Sprite): + def __init__(self, x, y): + self.x = x + self.y = y + pygame.sprite.Sprite.__init__(self) + self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y + MARGIN, + WIDTH, HEIGHT) + + +class Kratka(pygame.sprite.Sprite): + def __init__(self, poz_x, poz_y): + self.pozX = poz_x + self.pozY = poz_y + pygame.sprite.Sprite.__init__(self) + self.image = pygame.image.__init__() + self.rect = pygame.Rect(self.pozX * WIDTH + MARGIN * self.pozX + MARGIN, self.pozY * HEIGHT + MARGIN * self.pozY + MARGIN, + WIDTH, HEIGHT) + + def setImage(self, image): + self.image = image From 55c0218bca7894ae9f0276445c5ae3252cae928e Mon Sep 17 00:00:00 2001 From: Adam Osiowy Date: Sun, 29 Mar 2020 16:46:10 +0200 Subject: [PATCH 2/8] zmiany w definicji klas w pliku modele.py --- modele.py | 1 + 1 file changed, 1 insertion(+) diff --git a/modele.py b/modele.py index 0cb18be..8ad6e47 100644 --- a/modele.py +++ b/modele.py @@ -50,6 +50,7 @@ class Kontener(pygame.sprite.Sprite): self.x = x self.y = y pygame.sprite.Sprite.__init__(self) + self.image = pygame.image.__init__() self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y + MARGIN, WIDTH, HEIGHT) From c7351ef952fc55d7263be0adde911fbafed51101 Mon Sep 17 00:00:00 2001 From: Adam Osiowy Date: Sun, 29 Mar 2020 17:27:02 +0200 Subject: [PATCH 3/8] dodany pakiet numpy --- game.py | 89 ++++++++++++++++++++++++++++--------------------------- main.py | 1 + modele.py | 6 ++-- 3 files changed, 50 insertions(+), 46 deletions(-) diff --git a/game.py b/game.py index 305af37..ddf57e9 100644 --- a/game.py +++ b/game.py @@ -1,5 +1,6 @@ import pygame import modele +import numpy as np # kolory BLACK = (0, 0, 0) @@ -16,54 +17,55 @@ HEIGHT = 60 # margines pomiedzy kratkami MARGIN = 5 +# rozmiar kratki +ILOSC_WIERSZY = 100 +ILOSC_KOLUMN = 100 + # rozmiar okna WINDOW_SIZE = [980, 980] +# TWORZENIE OBIEKTOW + + + +smieciarka = modele.Smieciarka(10, 10) + +kontener_plastik = modele.Kontener(0, 0) +kontener_plastik.setImage(pygame.image.load("resources/pojemnik_plastik.png")) + +kontener_metal = modele.Kontener(0, 4) +kontener_metal.setImage(pygame.image.load("resources/pojemnik_metal.png")) + +kontener_organiczne = modele.Kontener(2, 2) +kontener_organiczne.setImage(pygame.image.load("resources/pojemnik_organiczne.png")) + +kontener_papier = modele.Kontener(4, 0) +kontener_papier.setImage(pygame.image.load("resources/pojemnik_papier.png")) + +kontener_szklo = modele.Kontener(4, 4) +kontener_szklo.setImage(pygame.image.load("resources/pojemnik_szklo.png")) + +kratka_list = pygame.sprite.Group() +kontener_list = pygame.sprite.Group() +smieciarka_list = pygame.sprite.Group() +all_sprites_list = pygame.sprite.Group() + +# kratka_list +kontener_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo) +smieciarka_list.add(smieciarka) +all_sprites_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo, + smieciarka) + def game(): - # TWORZENIE OBIEKTOW - smieciarka = modele.Smieciarka(10, 10) - kontener_plastik = modele.Kontener(0, 0) - kontener_plastik.image = pygame.image.load("resources/pojemnik_plastik.png") - kontener_metal = modele.Kontener(0, 4) - kontener_metal.image = pygame.image.load("resources/pojemnik_metal.png") - kontener_organiczne = modele.Kontener(2, 2) - kontener_organiczne.image = pygame.image.load("resources/pojemnik_organiczne.png") - kontener_papier = modele.Kontener(4, 0) - kontener_papier.image = pygame.image.load("resources/pojemnik_papier.png") - kontener_szklo = modele.Kontener(4, 4) - kontener_szklo.image = pygame.image.load("resources/pojemnik_szklo.png") - - - - kontener_list = pygame.sprite.Group() - smieciarka_list = pygame.sprite.Group() - all_sprites_list = pygame.sprite.Group() - - kontener_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo) - smieciarka_list.add(smieciarka) - all_sprites_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo, - smieciarka) - pygame.init() - # Create a 2 dimensional array. A two dimensional - # array is simply a list of lists. - grid = [] - for row in range(100): - # Add an empty array that will hold each cell - # in this row - grid.append([]) - for column in range(100): - grid[row].append(0) # Append a cell - - # Set row 0, cell 0 to one. (Remember rows and - # column numbers start at zero.) - grid[0][0] = 1 + plansza = np.array([[0 for i in range(ILOSC_KOLUMN)] for j in range(ILOSC_WIERSZY)]) + plansza[0][0] = 1 # Set the HEIGHT and WIDTH of the screen - screen = pygame.display.set_mode(WINDOW_SIZE) + obraz = pygame.display.set_mode(WINDOW_SIZE) # Set title of screen pygame.display.set_caption("Inteligentna śmieciarka") @@ -74,7 +76,6 @@ def game(): # Used to manage how fast the screen updates clock = pygame.time.Clock() - # -------- Main Program Loop ----------- while not done: for event in pygame.event.get(): # User did something @@ -87,7 +88,7 @@ def game(): column = pos[0] // (WIDTH + MARGIN) row = pos[1] // (HEIGHT + MARGIN) # Set that location to one - grid[row][column] = 1 + plansza[row][column] = 1 print("Click ", pos, "Grid coordinates: ", row, column) elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: @@ -100,7 +101,7 @@ def game(): smieciarka.w_dol() # Set the screen background - screen.fill(BLACK) + obraz.fill(BLACK) # Draw the grid for row in range(15): @@ -108,14 +109,14 @@ def game(): color = GREY # if grid[row][column] == 1: # color = BLUE - pygame.draw.rect(screen, + pygame.draw.rect(obraz, color, [(MARGIN + WIDTH) * column + MARGIN, (MARGIN + HEIGHT) * row + MARGIN, WIDTH, HEIGHT]) - screen.blit(pygame.image.load("resources/wysypisko.jpg"), (5, 5)) - all_sprites_list.draw(screen) + obraz.blit(pygame.image.load("resources/wysypisko.jpg"), (5, 5)) + all_sprites_list.draw(obraz) # Limit to 60 frames per second clock.tick(60) diff --git a/main.py b/main.py index 0a8e980..1a6c4a5 100644 --- a/main.py +++ b/main.py @@ -4,6 +4,7 @@ import game def main(): print("poczatek programu") + game.game() if __name__ == '__main__': diff --git a/modele.py b/modele.py index 8ad6e47..a653dd3 100644 --- a/modele.py +++ b/modele.py @@ -50,9 +50,11 @@ class Kontener(pygame.sprite.Sprite): self.x = x self.y = y pygame.sprite.Sprite.__init__(self) - self.image = pygame.image.__init__() + 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) + def setImage(self,image): + self.image = image class Kratka(pygame.sprite.Sprite): @@ -60,7 +62,7 @@ class Kratka(pygame.sprite.Sprite): self.pozX = poz_x self.pozY = poz_y pygame.sprite.Sprite.__init__(self) - self.image = pygame.image.__init__() + self.image = pygame.image.__class__ self.rect = pygame.Rect(self.pozX * WIDTH + MARGIN * self.pozX + MARGIN, self.pozY * HEIGHT + MARGIN * self.pozY + MARGIN, WIDTH, HEIGHT) From 99bece6599de817993729c75a8c6a09e415bc2d2 Mon Sep 17 00:00:00 2001 From: Adam Osiowy Date: Sun, 29 Mar 2020 17:32:48 +0200 Subject: [PATCH 4/8] zmieniona ilosc wierszy i kolumn --- game.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game.py b/game.py index ddf57e9..426a468 100644 --- a/game.py +++ b/game.py @@ -18,8 +18,8 @@ HEIGHT = 60 MARGIN = 5 # rozmiar kratki -ILOSC_WIERSZY = 100 -ILOSC_KOLUMN = 100 +ILOSC_WIERSZY = 15 +ILOSC_KOLUMN = 15 # rozmiar okna WINDOW_SIZE = [980, 980] From d1da896b632277daba3f65f3103b248df12f7822 Mon Sep 17 00:00:00 2001 From: Adam Osiowy Date: Sun, 29 Mar 2020 19:59:24 +0200 Subject: [PATCH 5/8] zmiany w tworzeniu planszy --- .gitignore | 3 +- __pycache__/game.cpython-37.pyc | Bin 2240 -> 2364 bytes __pycache__/modele.cpython-37.pyc | Bin 2067 -> 2960 bytes game.py | 61 ++++++++++++++---------------- modele.py | 7 +++- 5 files changed, 36 insertions(+), 35 deletions(-) diff --git a/.gitignore b/.gitignore index e5eb40b..9960bf0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ venv/ .vscode/ .ideagit -.idea \ No newline at end of file +.idea +__pycache__ \ No newline at end of file diff --git a/__pycache__/game.cpython-37.pyc b/__pycache__/game.cpython-37.pyc index d080ddbbacceeaea365f8fbdef8c52ed67ff8f5c..734e0fb1c9fa0628d23a2971bd2d5611a5706615 100644 GIT binary patch literal 2364 zcmZ`)%}*Og6rb5I8)F+|J_5!N@^x^el3W@^5sDhX0Sf{tAEFtNx?9i0UA*31W|tCM zMv9b3ZEx+l7yH8|GO%x`}0&6_v#-Y#V_DFV;% zpKreWG)Kr^IJkI{(D@8n_!T9D6HZ;i&cBq=c&ssOo`N$#x zYy#FIfK7_Y?lnOUr@GTT*8>eo#3Zmr2dq4>3ZgJzjrCatV2$@#6MO<#Gh$}In(VV? zfOW0U%Ev1fMRCBI>a&W#njWxl#aS^sU={kTSzyfoiyY2%ulER>7xUd4;B7(7h@zMk z<2{QKUgWdy2)oJY4k^u@Vca)Mx`b$xOHtC#{zX8$5EqOXKrR4-eyn%Fhz;Qs*m#5L z`h_@Kgx;BnVg!Wq9%gDt#|OVSh3xPqh&t(zmxUk5cjQ%k?(dQjiRk&c{iGck;Jr4` z#`O}=#!$O(p`Aaa5$V$JNe3+S^u887cUMzZ)91n!%vzUr)UZpM(iZM3>XfLWhrf^y z50)Pt?1e&x2R66;&^dVCs(oY2=5y&EidqyN?6ArwJ55K_99uT*gSy=m3qk8cYSDGV zsOC3=$3^r9owG=L;u2oC?82(1w7t4e>B`2|&T@5qYh&-(W{FD71UU=>`j{^=jUof$ ziq&|0hSMcYLN1Y5wCAJ<{bN}Z;k^KyZF)|l8n|{CIgN$Ds{=PaCKP7|h<5QK3QZB& z?p69I(s4KK8y}(jvTl1$t?fY&;wAFHlqlM>AE5_!;0W2LqUG47k2(^z8?JwqiS!z@ z_`!3>whS$N2wTE4@4?AuoSD)jRrO3XtK3CcohNDLq>1BWXaoFq7$KLEq>Y+?XcONR+!q3gpy;u?geR z{@9B0+yX4ou{!2klahg*F|dO+$HCSF^nZ(>(xBgcYznaVfK6Y)3V{6$*vu8Ih;{&* zMeJy4AM&O<7hT6n6+!-Y2=+Q!_a;xq7)Iq*%)P&lvAT_YP9UF#Hjk$uh!rmqu2UCY zTGjww7I|)|hYSSEa+}YrZeJT4o-D7cob9^R5LSfHRIx57gM$g&A#BZf!zW!h5OEty490`7T=St|YR>wtJ tB^Tj-AG_i)rb@U5A_*~0>INOW*oPBAnbfCrI0I;Tn$-SJrf8O0`hU%1SLXl# literal 2240 zcmZuy&2!sC6yKFrvLb&bO`E14kkS@#Y15uKl)%s=ZsJMnmc$uPcLE;aRgGd>Am0Y?R#(E?%K=wyouoX z>*rTrHKq~zTN)>i0?Oy`hU*|0V%SCW_=_oK3RRd&RYoXb8r7Iib(WzSW>5p(DK+hMr=qNm{*{2tnu-&T6p+3EO!Rc#iANepQV`>n zoUWdT(GqAQ4TSSMfGtqcX9lEP_zJw?TbLT51Tz>zWgvBh!2lgc>Mlt%rVeq8n`F!o zV3aYV0i%o=o$0`+V#Th`*5QAo%49s{c$+pvZhYJ&Y zc94yyVsjoPS*RLf9^pN+f%e`u5CeuO^N1-+5Op_~2UsOuUl0$+;FIQtrUGuq&t5nPIn+KB=^{?tO0y-$>O*=myZF`YtE&TRV*RflU#XHvHdS730omOX| zKeNUiw$So@&K%E*?C{~js3X;?b_7b znxvq{h7Z|2n+rYYwXLo#G^cB|Z9!b$VnPoC?nD5taeqG$s>PTfj^{)|{cs`qM|7Yt@?2*DKYv z^}5iYVu+X7sJuw0sU5o~^o{0|%HulK51Ouh-~-#-l-@LR&x2<4o~CT3K*@65=J7s; z#|UY|X%Z^;4}{+G-Tkgd^{~Zl+k<~W--E4b$*tkn;M@o`?KQah{1?PO0qCEPS03(c zhc*v)EN1zkv-7;y`o`kj=Nv9wD++hEX!YLdA={DXYBA^uB9%Fa5Pk;&sX3g(h5x^b ziD4)+APZPm3_@^0mHK6pQ{^D4NlaXlEG{UfQoSkq?lI17c6@Fj3+?3+B6t|?1mp6@* iw&jeF|JTA;f@`qv+Mmgb9!g&W8!Ew*A$3@dq5cOV(p!H3 diff --git a/__pycache__/modele.cpython-37.pyc b/__pycache__/modele.cpython-37.pyc index 530bc36d41bad1c78387e6fa4a63f4b469bcd683..69fa141d8d11227ba375c866ef6f1b70096f3bbb 100644 GIT binary patch delta 1005 zcmb7D&2G~`5Z<+&wVnT{u2L0HN=T?IMAah)P=OvQhzL^Q06t*3S*ye?NwnTdG_n*V z`T&HLIJb|$l~>>m!b5QDnHeXps)z%uH9ua@kLLTvs`{l~ep)K!37i){KfU{9Ps?lc z^>lM*eUEU9+h>H^A&HDA_gVKWPG1o>|NZ!Pu6YwOLgGqU9Q0DP3f|0$L;37Oa2P&-w-`%pk?S3^&s{es8ko9)>Nctp zs+Ov;wfjwQw?Se9ltnF5;7t$Y>R{=|AaQG|+WUZkHDetS$fKZ#NqEpQkaU>$;LL|f zG#H5{I%rMm$ly6k$OWYY-pmMi@J*?!CcU>)Kn`RvMY@!MQ1*<`aQr6KZ)Z2ekdK4N zABpkls2>M|@Nno45BlMeJo##_G6YQAQ8n|{#7JTDa**wRoSRcGKM+~?5|$|-k03oR zgGw3Ht~jjBXZ;@ropeu@C{$B(WzvH3d)Np;1-i208Cn0n9(N&su^t|qBeOKstO`~4 zQ_Nn@QF{L5TI>2^uH~Sv%l^JEkSjKEY1Z4|KEzVUIV?@y(gohRw)$bZv<*RZb!k?r Q_(NE_K@Hu|owif_1M-!?e*gdg delta 282 zcmbOrK3RaziIo5&}@=rB>;o-Ktjm_d_cW5at^Mv=({Y@#ecF3aSJ zYzm1HK*cqTH4O0#HB3N~v4km$Ig4chYYoFfMn;AbrUh&@3|R~%>>>;$93YkmgE){S z&H!XHmT*Ev8DXL&>?NEFS%Btnr7!@kVD!`Eo-D&IKe?V$a&ij0rYYEMjBG&2$7sM< zCFq@>SCX2STBH{rpP83g5+CoU$xhuB pO^(S1+?tb_xP@hJaoFVMrdl1prw}Hhcg8 diff --git a/game.py b/game.py index 426a468..499b49c 100644 --- a/game.py +++ b/game.py @@ -24,46 +24,42 @@ ILOSC_KOLUMN = 15 # rozmiar okna WINDOW_SIZE = [980, 980] -# TWORZENIE OBIEKTOW - - +# Tworzenie planszy i kratek +plansza = np.array([[modele.Kratka(j, i, 0) for i in range(ILOSC_KOLUMN)] for j in range(ILOSC_WIERSZY)]) +# smieciarka smieciarka = modele.Smieciarka(10, 10) +plansza[10, 10] = smieciarka +# kontenery kontener_plastik = modele.Kontener(0, 0) kontener_plastik.setImage(pygame.image.load("resources/pojemnik_plastik.png")) +plansza[0, 0] = kontener_plastik kontener_metal = modele.Kontener(0, 4) kontener_metal.setImage(pygame.image.load("resources/pojemnik_metal.png")) +plansza[0, 4] = kontener_metal kontener_organiczne = modele.Kontener(2, 2) kontener_organiczne.setImage(pygame.image.load("resources/pojemnik_organiczne.png")) +plansza[2, 2] = kontener_organiczne kontener_papier = modele.Kontener(4, 0) kontener_papier.setImage(pygame.image.load("resources/pojemnik_papier.png")) +plansza[4, 0] = kontener_papier kontener_szklo = modele.Kontener(4, 4) kontener_szklo.setImage(pygame.image.load("resources/pojemnik_szklo.png")) +plansza[4, 4] = kontener_szklo -kratka_list = pygame.sprite.Group() -kontener_list = pygame.sprite.Group() -smieciarka_list = pygame.sprite.Group() all_sprites_list = pygame.sprite.Group() - -# kratka_list -kontener_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo) -smieciarka_list.add(smieciarka) all_sprites_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo, smieciarka) def game(): - pygame.init() - plansza = np.array([[0 for i in range(ILOSC_KOLUMN)] for j in range(ILOSC_WIERSZY)]) - plansza[0][0] = 1 - # Set the HEIGHT and WIDTH of the screen obraz = pygame.display.set_mode(WINDOW_SIZE) @@ -78,18 +74,19 @@ def game(): # -------- Main Program Loop ----------- while not done: + # obsluga zdarzen typu nacisniecie klawisza lub przycisku myszy for event in pygame.event.get(): # User did something if event.type == pygame.QUIT: # If user clicked close done = True # Flag that we are done so we exit this loop elif event.type == pygame.MOUSEBUTTONDOWN: # User clicks the mouse. Get the position - pos = pygame.mouse.get_pos() + pozycja_myszki = pygame.mouse.get_pos() + # Change the x/y screen coordinates to grid coordinates - column = pos[0] // (WIDTH + MARGIN) - row = pos[1] // (HEIGHT + MARGIN) - # Set that location to one - plansza[row][column] = 1 - print("Click ", pos, "Grid coordinates: ", row, column) + kolumna = pozycja_myszki[0] // (WIDTH + MARGIN) + wiersz = pozycja_myszki[1] // (HEIGHT + MARGIN) + + print("Click ", pozycja_myszki, "Grid coordinates: ", wiersz, kolumna) elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: smieciarka.w_lewo() @@ -103,19 +100,17 @@ def game(): # Set the screen background obraz.fill(BLACK) - # Draw the grid - for row in range(15): - for column in range(15): - color = GREY - # if grid[row][column] == 1: - # color = BLUE - pygame.draw.rect(obraz, - color, - [(MARGIN + WIDTH) * column + MARGIN, - (MARGIN + HEIGHT) * row + MARGIN, - WIDTH, - HEIGHT]) - obraz.blit(pygame.image.load("resources/wysypisko.jpg"), (5, 5)) + # rysowanie planszy + # for wiersz in range(ILOSC_WIERSZY): + # for kolumna in range(ILOSC_KOLUMN): + # kolor = GREY + # pygame.draw.rect(obraz, + # kolor, + # [(MARGIN + WIDTH) * kolumna + MARGIN, + # (MARGIN + HEIGHT) * wiersz + MARGIN, + # WIDTH, + # HEIGHT]) + #obraz.blit(pygame.image.load("resources/wysypisko.jpg"), (5, 5)) all_sprites_list.draw(obraz) # Limit to 60 frames per second diff --git a/modele.py b/modele.py index a653dd3..bc37cb7 100644 --- a/modele.py +++ b/modele.py @@ -58,9 +58,11 @@ class Kontener(pygame.sprite.Sprite): class Kratka(pygame.sprite.Sprite): - def __init__(self, poz_x, poz_y): + def __init__(self, poz_x, poz_y, nr_obiektu): self.pozX = poz_x self.pozY = poz_y + # 0 - nieprzypisany; 1 - smieciarka; 2 - kontener; 3 - wysypisko + self.rodzaj_przypisanego_obiektu = nr_obiektu pygame.sprite.Sprite.__init__(self) self.image = pygame.image.__class__ self.rect = pygame.Rect(self.pozX * WIDTH + MARGIN * self.pozX + MARGIN, self.pozY * HEIGHT + MARGIN * self.pozY + MARGIN, @@ -68,3 +70,6 @@ class Kratka(pygame.sprite.Sprite): def setImage(self, image): self.image = image + + def setRodzajObiektu(self,rodzaj): + self.rodzaj_przypisanego_obiektu = rodzaj \ No newline at end of file From 714ba5b406cd33428d35c63b3cb9f6d699cfec33 Mon Sep 17 00:00:00 2001 From: Adam Osiowy Date: Sun, 29 Mar 2020 21:02:00 +0200 Subject: [PATCH 6/8] implementacja klasy Kratka --- __pycache__/game.cpython-37.pyc | Bin 2364 -> 2830 bytes __pycache__/modele.cpython-37.pyc | Bin 2960 -> 3599 bytes game.py | 61 ++++++++++++++++++------------ modele.py | 34 +++++++++++++---- 4 files changed, 63 insertions(+), 32 deletions(-) diff --git a/__pycache__/game.cpython-37.pyc b/__pycache__/game.cpython-37.pyc index 734e0fb1c9fa0628d23a2971bd2d5611a5706615..d5f3549009eb5fb9587ef5352c13de93481d4816 100644 GIT binary patch delta 1495 zcmZvc&u`;I6vt=$BX!awP0}<;w@up8A8DX;*@B>~0I_YuQd%vdEebU%U2kW$xOJLz zJk_R^tAJP`4hXgK1#z-3NF2CvM4XU7f+OPKe*i8Bap%ArHwxK>So8AcGhaWyd2j4* zGoR%WONm4b!S9DZKX~u!%fvAL?y}6=88R@8ydjeEF-8=7If4lCB|T5`UV);6VecAA z`#4<9kPK)?9?=ehc9f2Gwb`zA=rL`MKQM0%OvO;j0kKgB=IM4--tFzf=DedM5> z)H&wJ!=E4r`_iR!tZbsM+=tSH!uk+$zmz^qL_sPhsDfF)`U3A4$RcVJyS2 ze|2}18;cjX^|^yDu>E5z;OIc}qCSFs{CqAu@<9wp|DnWmBA?^ql@5sm`NsWTx!LA} zPQ+2et!DXkP+!p6kd^&8%`{#YFyD*yxXItkQBvAHd9R$htIhsiJpu$spAm2-# z%p#rwlH%z{_){G|z|;GRFJsZgSHoT|)X+@_d2XoHeN1A$gb}~)l^rCKf)&Yo zCd?be(6SrCCkR^G?|z}KmCy2w+Km&oNA2qmPVLjCX&*M`51RWGiK)<{&{P)O-&8-} zw2UMB%+NKP^0kK5V1cr<{&v;Y<3EE6v8)c4*%TlzW!R1J$e>`!rCjhCzaqVOhI&lbM{_ zyOwElc#>r{1LgR{)XP&C@_S zYO)2G>uT-w)vc^+G}@Nw_JLr z6QtHT04A*mk*j(K>TT9IX|fj~QXm_Iggfpjuz1B;SY_>{dV`!;^c4)qzT^I-P0uCe UIL_cC)bxL?EUH?PVqhckKW}|$>i_@% delta 1029 zcmZ{iO-~a+7{_P!rQI%VsiiG_le_2XD=RnrmPJyaX0hKGynNLGqeBM!^DSZs1ORN2%es= z&mLVl3Z?Mlqw`iPMx&&622t$92_mR1XbGBd`Y9?WofL_*aT{Yq6F{BoQcUlWGC=ivRJ7IEGE1{vEa_ocz*2uP!ne%PT$f6FR1T;NP^diM z47QOrM2DPVIBuF|XqM(^tnI^yWJ&G?(nbhgLHU6n+=RP%kzwfVU-;t%KO}w7>S+jD zsEO912iQUmeu>FFR{M~!}#rM@p(uAn)N_{3DrInFWSfA&oEz%w^?ZQ zYxX9)e0r}T4%r- z*Q?C1Xnox@>Xs`Jray5d%h=dBuSSb4wwM!C`AK6cDxLC9QbORvzGj)f2q zR>UB@lBkM`5Wzw0!$Cn6BRC>NVHCv5nHCh)kP2j2V$)EYA7wG<7{3%(-f2{-`>wE4 zWtU*A$))*)`$bK*&48+DQeo*qQIqDDi>qvu*NpQp#=+3S(!G`0_0mFdc|}`gy?i1G z!IgE!^nDiQkiTl`JN2i!rmj>Bx?$*STW6CnW1j>jLauC7^eyU2=B`fce)Uel^_@E8 z%5!YDQDswnK~X29bMR9;{xL?GsqB)5NpJGMw?1zltK$=34vu0)_+M0U82iLOOU>~3 diff --git a/__pycache__/modele.cpython-37.pyc b/__pycache__/modele.cpython-37.pyc index 69fa141d8d11227ba375c866ef6f1b70096f3bbb..87d63673e76d0d95480b672e18c411adecf2c40d 100644 GIT binary patch literal 3599 zcmb_eOK%%D5awzhTD@(@&8tD*X|ZkNqz@oL5fphjw(C>~WT#0~BMU{`IFco=%3Z^e z;6s4shsekNC0={dsrO#mZ%D0HcCE$*x&nuzA(tF}^UZMYluCJq=k_13pKTNv`~9!OjA8d6<~Tcg zhv#@6eU=w+ilWSKbX!5Q)et+4rio?fq258eix$0vI4};F&kiz>Mx1GzLyH@SWHUM0 zY}lN3cIY0kL&IQkW|%u*Z5HPjSzI7(k)4BfjzKr#;@D~^Yd$U>T3DmR8T>J;gYzPY z!adOpqN~xwwWZ$fwnnHdjaSm>OQ+Z0Zgc}_x4Mn(Kw6!!!KEeknlGgj^+YQUq_d%W z*Y{hyt=RXaRSTN2v>&hC+gz2-kGE?pYgOs2F0ZYuZsKJOdZx6Zpz}gxactp2{Kmvt zbbsEs``y-~C=k(BgEzvcwe_&yeAy7)hazm_#b|4zzIG)AbE_Njpc5?h`l5o@&!9zR z2xd6=l~r3Z24~VYmJ&Cc6n=WBr&y>s`~-!tr=GU7pOx1C{@TPkvnikziTx2p=<5$!i3Qq2y6=W1jYFiXsnSR_#-kt0F5 zDv+kkGsHWj6L?yjgC?DQzZ2|-m!L=V7Blid#1O1BL9q-xH1f@DnV242DHxuy6zhHSq`z6HZXxk8!ZXwFC#v39`rFf$9@xfDhw5 z({+l@=UIy9f+#9fTq&e897p)JLlJz584;BT9lm3MqZw~?n57Quz`f1kcd?ra$bWL! z-uHRf`RbUzb4L)ygsSIC)QMe`6x4~l?<0NpI;0nU|ChZ+M~|pn78l8r_ei`?;sX*X z&6P%67X%Oi8c|ZXhMRNgv6a0E)8v^Ha!QNYg&YOak?wl98wb0AIJsOu#|p>Gb=w+( z+PXATp$5$z6ls)eP$Y+PoF`3}<8hHLjIHA$jq;s~3#w2T6@iSZS4wN7PW=+L7AkG1 z;wk#eobNX~jVSVcF-JyKG8D-a-4xSIT_`3McM3}dBdvA=ZJa2&e&&s9#$Z0dBCVYS zB|X$rQ}u%I*PtZM8#+5PdTUj*(g>EfiH}LB z(|<}@x@1ZUO8M((5#8?~g)7K%G9BpSVm2LS-Rr!F``zUw(4{P$b{LO0>yGFFKwkopcM9wuD8Xq+_$6%F zBy1`>CQwgpChI@Ppr=_ct>4y2P#?*QFhV+c-kU}1c?DVqH}<-vuc5KPTFy$efIE|7j41FAjiMCoT!8&3sY zjaBhQGPCkrqgCnF6JL|~hQvwL=rau5LsPXC)u`l}`X^|_tLU6kReSP%AniL3Zr@$U zcl7Go=CZVrg3DED)|T%{>&}Bm%i;>{mfi+*4XPri);!4#>E6`$?f3Kv8qrsYYg&e7 O;%7{LnZ?VCrN04%AD;pM literal 2960 zcmb_eU2hvj6rI^`Z=5t~4Jo30Q_vz2f`mkb3Mv#xLaC{e0L8LcZ9SXBj_ozG8>O-Q zfJA?Y^T==EA1seN`7iLqxiemG62+8COf+{UcW3X+o_p>Yf3djeGqeYP{QC2s6~_Le ze~M;dau+?_gAq*dE^9DhG&s5;%!awigeB~!OxQ8&SRMN}v*Ez!2p2wg=5yimL
3{38#rys$@4Er+di`}2HhAB*8VZ{Ez!DtItco-c~
z5k5v&EFgY0_jh~kxYds2QPeUKh8m3y`aSgY5N5d_0s
zcE6p4VQ%fjtt_{H-2QTJD|a4zzO%Vq&z-HWwl}x-@G>3-W^Sc%cV80Nl0f*K$r^^g
zH|~AX{639k+Kfb$r0wRz)7D`mdkZ>$x^Y|)2Oqmgo<^6&#Dgr(p|mfRUJi{{1#Gmx1Kxd7ebg{3m*sLWXkb-S*xozQ+0BGvpP1fE7_8LQ+qGS|sajYyY_M+Sw$
z0xoaRoWRrO1fHf+){S9at;l>?gAE+6NN<+6Z%eI!Q`U?i;w>s
z76!1`(O4jcM|E;$f`Oi}VKpL7eL~5SFT(77EmtuFm4E;8ypqYNpYA8Jms|VY_CP@~
z2L<;e9LVS-c?E$l!BFGF>la{93oqa>;{?_H6bDPL7dU86kUs+t)L1YBe3;gm%DDQz
zz*0PyD+nf4UMZz>4vzF4Br?8D=cek=>ARFTTJg*Sv+}??anCyNOW5uC4{V==BI&+&
z>AcGq5XORf;N{SXJ|qP?;fEp0_qa>*Y8d`<9Ch^*Rm<`wo#Yl7%Ab6dOi6P!BYsP|
z9~RJ4Di4o)6_1*&{4Ka}g_DDHL8!poieGRkm=Q&eg+&b`A&q<2PU(r=QnGo^;vaXX+y
z=w{|~+~2s>vx|2)sIka7co=B5HXM!TId&<+E+guWLi#(6?KgO**m-sOjhENd17|*c-$j6PyObOz
z`KOIwjdeb1ES!yT!91gI)6?~_s(h?R=(YWY>MbMKCp-p}aQh$?x{w76wjX6<&Z
F`VYnDBK!aV

diff --git a/game.py b/game.py
index 499b49c..c688314 100644
--- a/game.py
+++ b/game.py
@@ -1,3 +1,8 @@
+# TODO: sledzenie pozycji smieciarki
+# TODO: pole na ktorym wypisywane beda informacje
+# TODO: obsluga kolizji
+
+
 import pygame
 import modele
 import numpy as np
@@ -25,32 +30,37 @@ ILOSC_KOLUMN = 15
 WINDOW_SIZE = [980, 980]
 
 # Tworzenie planszy i kratek
-plansza = np.array([[modele.Kratka(j, i, 0) for i in range(ILOSC_KOLUMN)] for j in range(ILOSC_WIERSZY)])
+plansza = np.array([[modele.Kratka(j, i) for i in range(ILOSC_KOLUMN)] for j in range(ILOSC_WIERSZY)])
 
 # smieciarka
 smieciarka = modele.Smieciarka(10, 10)
-plansza[10, 10] = smieciarka
+plansza[10, 10].setJestSmieciarka(True)
 
 # kontenery
 kontener_plastik = modele.Kontener(0, 0)
 kontener_plastik.setImage(pygame.image.load("resources/pojemnik_plastik.png"))
-plansza[0, 0] = kontener_plastik
+plansza[0, 0].setJestKontenerem(True)
 
 kontener_metal = modele.Kontener(0, 4)
 kontener_metal.setImage(pygame.image.load("resources/pojemnik_metal.png"))
-plansza[0, 4] = kontener_metal
+plansza[0, 4].setJestKontenerem(True)
 
 kontener_organiczne = modele.Kontener(2, 2)
 kontener_organiczne.setImage(pygame.image.load("resources/pojemnik_organiczne.png"))
-plansza[2, 2] = kontener_organiczne
+plansza[2, 2].setJestKontenerem(True)
 
 kontener_papier = modele.Kontener(4, 0)
 kontener_papier.setImage(pygame.image.load("resources/pojemnik_papier.png"))
-plansza[4, 0] = kontener_papier
+plansza[4, 0].setJestKontenerem(True)
 
 kontener_szklo = modele.Kontener(4, 4)
 kontener_szklo.setImage(pygame.image.load("resources/pojemnik_szklo.png"))
-plansza[4, 4] = kontener_szklo
+plansza[4, 4].setJestKontenerem(True)
+
+# ustawienie wysypiska, rozmiar wysypiska 5x5
+for i in range(5):
+    for j in range(5):
+        plansza[i, j].setJestWysypiskiem(True)
 
 all_sprites_list = pygame.sprite.Group()
 all_sprites_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo,
@@ -74,6 +84,7 @@ def game():
 
     # -------- Main Program Loop -----------
     while not done:
+
         # obsluga zdarzen typu nacisniecie klawisza lub przycisku myszy
         for event in pygame.event.get():  # User did something
             if event.type == pygame.QUIT:  # If user clicked close
@@ -87,6 +98,8 @@ def game():
                 wiersz = pozycja_myszki[1] // (HEIGHT + MARGIN)
 
                 print("Click ", pozycja_myszki, "Grid coordinates: ", wiersz, kolumna)
+                plansza[wiersz,kolumna].setKolor(BLUE)
+
             elif event.type == pygame.KEYDOWN:
                 if event.key == pygame.K_LEFT:
                     smieciarka.w_lewo()
@@ -97,28 +110,26 @@ def game():
                 if event.key == pygame.K_DOWN:
                     smieciarka.w_dol()
 
-        # Set the screen background
-        obraz.fill(BLACK)
-
-        # rysowanie planszy
-        # for wiersz in range(ILOSC_WIERSZY):
-        #     for kolumna in range(ILOSC_KOLUMN):
-        #         kolor = GREY
-        #         pygame.draw.rect(obraz,
-        #                          kolor,
-        #                          [(MARGIN + WIDTH) * kolumna + MARGIN,
-        #                           (MARGIN + HEIGHT) * wiersz + MARGIN,
-        #                           WIDTH,
-        #                           HEIGHT])
-        #obraz.blit(pygame.image.load("resources/wysypisko.jpg"), (5, 5))
-        all_sprites_list.draw(obraz)
-
         # Limit to 60 frames per second
         clock.tick(60)
 
+        # czarny kolor w tle
+        obraz.fill(BLACK)
+
+        # rysowanie planszy #
+        for i in range(ILOSC_WIERSZY):
+            for j in range(ILOSC_KOLUMN):
+                pygame.draw.rect(obraz,
+                                 plansza[i, j].kolor,
+                                 [(MARGIN + WIDTH) * plansza[i, j].pozY + MARGIN,
+                                  (MARGIN + HEIGHT) * plansza[i, j].pozX + MARGIN,
+                                  WIDTH,
+                                  HEIGHT])
+
+        obraz.blit(pygame.image.load("resources/wysypisko.jpg"), (5, 5))
+        all_sprites_list.draw(obraz)
+
         # Go ahead and update the screen with what we've drawn.
         pygame.display.flip()
 
-    # Be IDLE friendly. If you forget this line, the program will 'hang'
-    # on exit.
     pygame.quit()
diff --git a/modele.py b/modele.py
index bc37cb7..70b1090 100644
--- a/modele.py
+++ b/modele.py
@@ -7,6 +7,13 @@ HEIGHT = 60
 # This sets the margin between each cell
 MARGIN = 5
 
+# kolory
+BLACK = (0, 0, 0)
+WHITE = (255, 255, 255)
+GREEN = (0, 255, 0)
+RED = (255, 0, 0)
+BLUE = (0, 0, 255)
+GREY = (128, 128, 128)
 
 class Smieciarka(pygame.sprite.Sprite):
     def __init__(self, x, y):
@@ -53,23 +60,36 @@ class Kontener(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)
-    def setImage(self,image):
+
+    def setImage(self, image):
         self.image = image
 
 
 class Kratka(pygame.sprite.Sprite):
-    def __init__(self, poz_x, poz_y, nr_obiektu):
+    def __init__(self, poz_x, poz_y):
         self.pozX = poz_x
         self.pozY = poz_y
-        # 0 - nieprzypisany; 1 - smieciarka; 2 - kontener; 3 - wysypisko
-        self.rodzaj_przypisanego_obiektu = nr_obiektu
+        self.jestSmieciarka = False
+        self.jestKontenerem = False
+        self.jestWysypiskiem = False
+        self.kolor = GREY
         pygame.sprite.Sprite.__init__(self)
         self.image = pygame.image.__class__
-        self.rect = pygame.Rect(self.pozX * WIDTH + MARGIN * self.pozX + MARGIN, self.pozY * HEIGHT + MARGIN * self.pozY + MARGIN,
+        self.rect = pygame.Rect(self.pozX * WIDTH + MARGIN * self.pozX + MARGIN,
+                                self.pozY * HEIGHT + MARGIN * self.pozY + MARGIN,
                                 WIDTH, HEIGHT)
 
     def setImage(self, image):
         self.image = image
 
-    def setRodzajObiektu(self,rodzaj):
-        self.rodzaj_przypisanego_obiektu = rodzaj
\ No newline at end of file
+    def setJestSmieciarka(self, bool):
+        self.jestSmieciarka = bool
+
+    def setJestKontenerem(self, bool):
+        self.jestKontenerem = bool
+
+    def setJestWysypiskiem(self, bool):
+        self.jestWysypiskiem = bool
+
+    def setKolor(self,kolor):
+        self.kolor = kolor
\ No newline at end of file

From 66652c46df7186ae0dee475370475db5f4bc5fe1 Mon Sep 17 00:00:00 2001
From: Adam Osiowy 
Date: Sun, 29 Mar 2020 21:04:45 +0200
Subject: [PATCH 7/8] gitignore

---
 .gitignore                      |   2 +-
 __pycache__/game.cpython-37.pyc | Bin 2830 -> 2830 bytes
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 9960bf0..2a1f512 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,4 @@ venv/
 .vscode/
 .ideagit
 .idea
-__pycache__
\ No newline at end of file
+__pycache__/
\ No newline at end of file
diff --git a/__pycache__/game.cpython-37.pyc b/__pycache__/game.cpython-37.pyc
index d5f3549009eb5fb9587ef5352c13de93481d4816..3d9208873164b0a77a1739b2e59739f94d44fa2a 100644
GIT binary patch
delta 49
zcmeAZ>l5R1;^pOH0D|TZ4ROkX8~Mzc85JkHF^4iLZl1#&$ja!p`5nheMn<;DJGjCC
DA@~f$

delta 49
zcmeAZ>l5R1;^pOH0D|N18{*aqY~(X%W|W!i#vIBhvw044AS
Date: Sun, 29 Mar 2020 21:07:00 +0200
Subject: [PATCH 8/8] gitignore

---
 __pycache__/game.cpython-37.pyc   | Bin 2830 -> 0 bytes
 __pycache__/modele.cpython-37.pyc | Bin 3599 -> 0 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 __pycache__/game.cpython-37.pyc
 delete mode 100644 __pycache__/modele.cpython-37.pyc

diff --git a/__pycache__/game.cpython-37.pyc b/__pycache__/game.cpython-37.pyc
deleted file mode 100644
index 3d9208873164b0a77a1739b2e59739f94d44fa2a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2830
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
O;%7{LnZ?VCrN04%AD;pM