From 714ba5b406cd33428d35c63b3cb9f6d699cfec33 Mon Sep 17 00:00:00 2001 From: Adam Osiowy Date: Sun, 29 Mar 2020 21:02:00 +0200 Subject: [PATCH] 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