diff --git a/.idea/Sztuczna_Inteligencja_Gr16.iml b/.idea/Sztuczna_Inteligencja_Gr16.iml index eeb3c1e..74d515a 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 94f623a..89fb180 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/agenci.py b/agenci.py index 6b22093..2674685 100644 --- a/agenci.py +++ b/agenci.py @@ -1,6 +1,7 @@ import random import pygame +from enumy import * from stale import * @@ -8,6 +9,7 @@ from stale import * class Agent1: bok = BOK_AGENTA1 bok_w_polach = BOK_AGENTA1_W_POLACH + Agenci = [] def __init__(self, pole_lewe_gorne, tekstura, kierunek, droga): self.pole_lewe_gorne = pole_lewe_gorne @@ -15,6 +17,7 @@ class Agent1: self.tekstura = tekstura self.kierunek = kierunek self.droga = droga + Agent1.Agenci.append(self) def obierzNowyKierunek(self): self.kierunek = KIERUNEK(random.randint(0, 3)) @@ -59,13 +62,13 @@ class Agent1: else: self.droga = 0 - def czyWszedlesWInnegoAgenta(self, Agenci): - for a in Agenci: + def czyWszedlesWInnegoAgenta(self): + for a in self.Agenci: if a.hitbox.colliderect(self.hitbox) and a != self: return True return False - def ruszSie(self, Agenci): + def ruszSie(self): if self.kierunek == KIERUNEK.GORA: self.idzWGore() elif self.kierunek == KIERUNEK.DOL: @@ -74,7 +77,7 @@ class Agent1: self.idzWLewo() elif self.kierunek == KIERUNEK.PRAWO: self.idzWPrawo() - if self.czyWszedlesWInnegoAgenta(Agenci): + if self.czyWszedlesWInnegoAgenta(): self.cofnijSie() self.zawroc() self.okreslDlugoscDrogi() @@ -103,4 +106,4 @@ class Agent1: def zaznacz_zajmowane_pola_na_kracie(self, Krata): for wiersz in range(self.pole_lewe_gorne.wiersz, self.pole_lewe_gorne.wiersz + self.bok_w_polach): for kolumna in range(self.pole_lewe_gorne.kolumna, self.pole_lewe_gorne.kolumna + self.bok_w_polach): - Krata[wiersz][kolumna] = POLE.AGENT + Krata.krata[wiersz][kolumna] = POLE.AGENT diff --git a/main.py b/main.py index 5f859b9..8b42107 100644 --- a/main.py +++ b/main.py @@ -1,30 +1,16 @@ import os +from klasy import * + from agenci import * -from stale import * OKNO = pygame.display.set_mode((SZEROKOSC_OKNA, WYSOKOSC_OKNA)) pygame.display.set_caption("Okno1") -Agenci1 = [] - -Krata = [] -for rzad in range(LICZBA_POL_W_PIONIE): - Krata.append([]) - for kolumna in range(LICZBA_POL_W_POZIOMIE): - Krata[rzad].append(POLE.PUSTE) - - -def wyswietl_krate(): - OKNO.fill(SZARY1) - for rzad in range(LICZBA_POL_W_PIONIE): - for kolumna in range(LICZBA_POL_W_POZIOMIE): - pygame.draw.rect(OKNO, BIALY, [(ODSTEP_MIEDZY_POLAMI + BOK_POLA) * kolumna + ODSTEP_MIEDZY_POLAMI, - (ODSTEP_MIEDZY_POLAMI + BOK_POLA) * rzad + ODSTEP_MIEDZY_POLAMI, - BOK_POLA, BOK_POLA]) +Krata = Krata(OKNO) def wyswietl_agentow(): - for a in Agenci1: + for a in Agent1.Agenci: OKNO.blit(a.tekstura, (a.hitbox.x, a.hitbox.y)) if a.droga == 0: a.obierzNowyKierunek() @@ -37,7 +23,7 @@ def czy_wylosowane_dla_agenta_pola_sa_puste(pole_lewe_gorne): wynik = True for wiersz in range(pole_lewe_gorne.wiersz, pole_lewe_gorne.wiersz + BOK_AGENTA1_W_POLACH): for kolumna in range(pole_lewe_gorne.kolumna, pole_lewe_gorne.kolumna + BOK_AGENTA1_W_POLACH): - if Krata[wiersz][kolumna] != POLE.PUSTE: + if Krata.krata[wiersz][kolumna] != POLE.PUSTE: wynik = False break if wynik == False: @@ -47,30 +33,30 @@ def czy_wylosowane_dla_agenta_pola_sa_puste(pole_lewe_gorne): def dodaj_agenta1(): los = None - if len(Agenci1) in range(0, 40): + if len(Agent1.Agenci) in range(0, 40): los = random.randint(1, 150) - elif len(Agenci1) in range(40, 50): + elif len(Agent1.Agenci) in range(40, 50): los = random.randint(1, 15) if los != None: pom = None - if los in (1, 2) or len(Agenci1) == 0: + if los in (1, 2) or len(Agent1.Agenci) == 0: pom = 'wozek.png' elif los in (3, 4): pom = 'wozek_ze_skrzynka.png' - elif los == 5 and len(Agenci1) > 6: + elif los == 5 and len(Agent1.Agenci) > 6: pom = 'traktor_ikona.png' if pom != None: 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: + if len(Agent1.Agenci) == 0: pole_lewe_gorne = Pole(0, 0) if czy_wylosowane_dla_agenta_pola_sa_puste(pole_lewe_gorne): - pom='test1_ikona.png' + pom = 'test1_ikona.png' ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', pom)), (BOK_AGENTA1, BOK_AGENTA1)) nowy_agent = Agent1(pole_lewe_gorne, ikona, KIERUNEK.GORA, 0) nowy_agent.zaznacz_zajmowane_pola_na_kracie(Krata) - Agenci1.append(nowy_agent) + Agent1.Agenci.append(nowy_agent) # print(Krata) @@ -83,7 +69,7 @@ def main(): if event.type == pygame.QUIT: warunek_dzialania = False break - wyswietl_krate() + Krata.wyswietl_krate() wyswietl_agentow() dodaj_agenta1() pygame.quit() diff --git a/stale.py b/stale.py index 1d8be71..daa130a 100644 --- a/stale.py +++ b/stale.py @@ -1,5 +1,3 @@ -from enum import Enum - FPS = 120 # SZEROKOSC_OKNA = 1500 @@ -20,26 +18,3 @@ BIALY = (255, 255, 255) JASNOSZARY1 = (200, 200, 200) SZARY1 = (150, 150, 150) ZIELONY1 = (26, 122, 26) - - -class KIERUNEK(Enum): - GORA = 0 - 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