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