From 9ca4f821e1f86cdfebc270a2b46b6c592dd56523 Mon Sep 17 00:00:00 2001 From: Dominik Jagosz Date: Thu, 10 Mar 2022 19:41:05 +0100 Subject: [PATCH] =?UTF-8?q?Stworzenie=20kraty=20(prawdziwej,=20z=20polami)?= =?UTF-8?q?.=20Losowanie=20na=20ni=C4=85=20agent=C3=B3w=20zajmuj=C4=85cych?= =?UTF-8?q?=20nxn=20p=C3=B3l.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/Sztuczna_Inteligencja_Gr16.iml | 2 +- .idea/misc.xml | 2 +- Ikony/forklift.png | Bin 1038 -> 0 bytes agenci.py | 15 ++++++- main.py | 56 ++++++++++++++++++++------- stale.py | 34 ++++++++++++++-- 6 files changed, 87 insertions(+), 22 deletions(-) delete mode 100644 Ikony/forklift.png diff --git a/.idea/Sztuczna_Inteligencja_Gr16.iml b/.idea/Sztuczna_Inteligencja_Gr16.iml index f754d4e..eeb3c1e 100644 --- a/.idea/Sztuczna_Inteligencja_Gr16.iml +++ b/.idea/Sztuczna_Inteligencja_Gr16.iml @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 89fb180..94f623a 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/Ikony/forklift.png b/Ikony/forklift.png deleted file mode 100644 index 0ac059f3f8ebec210c462681335cc04b989155e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1038 zcmV+p1o8WcP)fM&uRo54kJ40*GK zvH`u^_TJ-%SvOf*qM!Fqo)6DC=YM|B%K>g{2~oV@d~43z1mq<(68fywLoY1_kO`=} z0X{@bWAXAw`#cSg7WTKr_S<&8n67Esgb-Z${g>}|B?a)wOq&Lz8c{mpcwlHE9$Bp`e$y9`7h07L)~F@>vZD0|B0a9%cy=*3u}B4uNF&A!aJ*-#63 zVR#B*uY=Q8ZmZev&}YUI0t5-g2T(46wE)(t!f=$hNAAqOBTy<;OJQsgiLFF@IMrdJ zp0Ap}v)NZQfl!*CIkxkOqJcFDZ@}Q9#X*~@(*fT%{6^;%>b{b7b1KCo%OjO_O~nu9 zU8tzZzo=_b`tZ+LE8)ik05H4&a5Agz#=hBH=QurnY`bMHVuNWK0BHd8EdUC)=FAO;(yl%8#r>)7ESF6v3Vt6R(+^d* z&8=HCpYs6#=~fNz>}ZYdI#wlBYZ~sk+l|5DG0cRnLYtqN1rWJ$7-$l} z*^hfY%iUQS885%^Fo+0m9ci(A^i$!$!TZ{sM8GcZIn-{rpcB9*v)XZKjbvd%{X^v_ z-n1U0;{m+-<|mM<>@*^g(HqC7umodoFl^teI+OysK1h(NL~uSO0AMgyyG%yG44Tm_ zD@UenQ3jl$bE{HOaQ>GelbE-*`wxB_ z|LcJA+NNfE%CaXnZpg*Jr7H+dU+Z4M16%xlzj1S&0sw>kUE?` 6: pom = 'traktor_ikona.png' if pom != None: - x, y = random.randint(0, SZEROKOSC_OKNA - BOK_AGENTA1), random.randint(0, WYSOKOSC_OKNA - BOK_AGENTA1) - hitbox = pygame.Rect(x, y, BOK_AGENTA1, BOK_AGENTA1) - warunek = True - for a in Agenci1: - if a.hitbox.colliderect(hitbox): - warunek = False - break - if warunek: + pole_lewe_gorne = Pole(random.randint(0, LICZBA_POL_W_PIONIE - BOK_AGENTA1_W_POLACH), + random.randint(0, LICZBA_POL_W_POZIOMIE - BOK_AGENTA1_W_POLACH)) + if len(Agenci1) == 0: + pole_lewe_gorne = Pole(0, 0) + if czy_wylosowane_dla_agenta_pola_sa_puste(pole_lewe_gorne): + pom='test1_ikona.png' ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', pom)), (BOK_AGENTA1, BOK_AGENTA1)) - Agenci1.append(Agent1(hitbox, ikona, KIERUNEK.GORA, 0)) + nowy_agent = Agent1(pole_lewe_gorne, ikona, KIERUNEK.GORA, 0) + nowy_agent.zaznacz_zajmowane_pola_na_kracie(Krata) + Agenci1.append(nowy_agent) + # print(Krata) def main(): @@ -58,7 +83,8 @@ def main(): if event.type == pygame.QUIT: warunek_dzialania = False break - wyswietl_okno() + wyswietl_krate() + wyswietl_agentow() dodaj_agenta1() pygame.quit() diff --git a/stale.py b/stale.py index 7e36106..1d8be71 100644 --- a/stale.py +++ b/stale.py @@ -1,12 +1,24 @@ from enum import Enum FPS = 120 + +# SZEROKOSC_OKNA = 1500 +# WYSOKOSC_OKNA = 750 + +LICZBA_POL_W_POZIOMIE = 60 +LICZBA_POL_W_PIONIE = 30 +BOK_POLA = 20 +ODSTEP_MIEDZY_POLAMI = 5 +SZEROKOSC_OKNA = LICZBA_POL_W_POZIOMIE * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) + ODSTEP_MIEDZY_POLAMI +WYSOKOSC_OKNA = LICZBA_POL_W_PIONIE * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) + ODSTEP_MIEDZY_POLAMI + +BOK_AGENTA1_W_POLACH = 3 +BOK_AGENTA1 = BOK_AGENTA1_W_POLACH * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) - ODSTEP_MIEDZY_POLAMI KROK_AGENTA1 = 2 -SZEROKOSC_OKNA = 1280 -WYSOKOSC_OKNA = 960 -BOK_AGENTA1 = 100 + BIALY = (255, 255, 255) JASNOSZARY1 = (200, 200, 200) +SZARY1 = (150, 150, 150) ZIELONY1 = (26, 122, 26) @@ -15,3 +27,19 @@ class KIERUNEK(Enum): DOL = 1 LEWO = 2 PRAWO = 3 + + +class POLE(Enum): + PUSTE = 0 + AGENT = 1 + LAWA = 2 + + +class Pole(): + bok = BOK_POLA + + def __init__(self, wiersz, kolumna): + self.wiersz = wiersz + self.kolumna = kolumna + self.x_lewego_boku = (Pole.bok + ODSTEP_MIEDZY_POLAMI) * kolumna + ODSTEP_MIEDZY_POLAMI + self.y_gory = (Pole.bok + ODSTEP_MIEDZY_POLAMI) * wiersz + ODSTEP_MIEDZY_POLAMI