From c9e4022dba887ba82e77e9c23962fed81179a1ec Mon Sep 17 00:00:00 2001 From: Dominik Jagosz Date: Tue, 22 Mar 2022 21:52:05 +0100 Subject: [PATCH] =?UTF-8?q?Praca=20nad=20ramami=20(wiedz=C4=85=20agenta).?= =?UTF-8?q?=20Eksperymenty=20z=20kolorami=20i=20zawarto=C5=9Bci=C4=85=20p?= =?UTF-8?q?=C3=B3l.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent.py | 8 ++++ enumy.py | 14 ------- enumy_i_slowniki.py | 21 ++++++++++ krata.py | 27 ++++++++----- main.py | 7 ++-- ramy_czyli_wiedza_agenta.py | 77 +++++++++++++++++++++++++++++++++++++ stale.py | 10 ++--- 7 files changed, 133 insertions(+), 31 deletions(-) delete mode 100644 enumy.py create mode 100644 enumy_i_slowniki.py create mode 100644 ramy_czyli_wiedza_agenta.py diff --git a/agent.py b/agent.py index ec82f44..3a9553d 100644 --- a/agent.py +++ b/agent.py @@ -64,6 +64,14 @@ class Agent: else: return False + # ZROBIC sciany + # def wszedlemWSciane(self): + # for wiersz in range (self.poleStartoweGorne.wiersz,self.poleKoncoweDolne.wiersz): + # for kolumna in range(self.poleStartoweGorne.kolumna,self.poleKoncoweDolne.kolumna): + # if self.krata.krata[wiersz][kolumna]==ZawartoscPola.SCIANA: + # return True + # return False + def zawroc(self): if self.kierunek == Kierunek.GORA: self.kierunek = Kierunek.DOL diff --git a/enumy.py b/enumy.py deleted file mode 100644 index 7c52fa5..0000000 --- a/enumy.py +++ /dev/null @@ -1,14 +0,0 @@ -from enum import Enum - - -class Kierunek(Enum): - GORA = 0 - DOL = 1 - LEWO = 2 - PRAWO = 3 - - -class ZawartoscPola(Enum): - PUSTE = 0 - AGENT = 1 - LAWA = 2 diff --git a/enumy_i_slowniki.py b/enumy_i_slowniki.py new file mode 100644 index 0000000..6a95e28 --- /dev/null +++ b/enumy_i_slowniki.py @@ -0,0 +1,21 @@ +from enum import Enum + +from stale import * + + +class Kierunek(Enum): + GORA = 0 + DOL = 1 + LEWO = 2 + PRAWO = 3 + + +class ZawartoscPola(Enum): + PUSTE = 0 + SCIANA = 1 + + +ZawartoscPolaNaKolorPola = { + ZawartoscPola.PUSTE: BIALY, + ZawartoscPola.SCIANA: CIEMNY_BRAZOWY1 +} diff --git a/krata.py b/krata.py index 2d6d105..3c343d7 100644 --- a/krata.py +++ b/krata.py @@ -1,6 +1,6 @@ import pygame -from enumy import * +from enumy_i_slowniki import * from stale import * @@ -44,29 +44,38 @@ class Krata: self.liczbaPolPionowo = LICZBA_POL_W_PIONIE self.bokPola = BOK_POLA self.odstepMiedzyPolami = ODSTEP_MIEDZY_POLAMI - self.krata = self.utworzPustaKrate() + self.utworzPustaKrate() self.agent = None def utworzPustaKrate(self): self.krata = [] - for rzad in range(self.liczbaPolPionowo): + for wiersz in range(self.liczbaPolPionowo): self.krata.append([]) for kolumna in range(self.liczbaPolPoziomo): - self.krata[rzad].append(ZawartoscPola.PUSTE) + zawartosc_pola = ZawartoscPola.PUSTE + # ZROBIC sciany + # if wiersz in (0, self.liczbaPolPionowo - 1) or kolumna in (0, self.liczbaPolPoziomo - 1): + # zawartosc_pola = ZawartoscPola.SCIANA + # if wiersz in range(6,18) and kolumna in (5,15,25,35): + # zawartosc_pola = ZawartoscPola.SCIANA + # if wiersz in (4,22) and kolumna in range (10,35): + # zawartosc_pola = ZawartoscPola.SCIANA + self.krata[wiersz].append(zawartosc_pola) def wyswietlKrate(self): - # self.narysujKrate() - self.narysujKrateAlternatywnie() + self.narysujKrate() + # self.narysujKrateAlternatywnie() self.narysujAgenta() pygame.display.update() def narysujKrate(self): self.okno.fill(SZARY1) - for rzad in range(self.liczbaPolPionowo): + for wiersz in range(self.liczbaPolPionowo): for kolumna in range(self.liczbaPolPoziomo): start = (self.odstepMiedzyPolami + self.bokPola) * kolumna + self.odstepMiedzyPolami - gora = (self.odstepMiedzyPolami + self.bokPola) * rzad + self.odstepMiedzyPolami - pygame.draw.rect(self.okno, BIALY, [start, gora, self.bokPola, self.bokPola]) + gora = (self.odstepMiedzyPolami + self.bokPola) * wiersz + self.odstepMiedzyPolami + kolor_pola = ZawartoscPolaNaKolorPola[self.krata[wiersz][kolumna]] + pygame.draw.rect(self.okno, kolor_pola, [start, gora, self.bokPola, self.bokPola]) def narysujKrateAlternatywnie(self): self.okno.fill(SZARY1) diff --git a/main.py b/main.py index 47ad130..9b8b187 100644 --- a/main.py +++ b/main.py @@ -8,9 +8,10 @@ Krata = Krata(Okno) def dodaj_agenta(): - pole_lewe_gorne = PoleKraty(Krata, random.randint(0, LICZBA_POL_W_PIONIE - BOK_AGENTA1_W_POLACH), - random.randint(0, LICZBA_POL_W_POZIOMIE - BOK_AGENTA1_W_POLACH)) - pom = 'test1_ikona.png' + # pole_lewe_gorne = PoleKraty(Krata, random.randint(0, LICZBA_POL_W_PIONIE - BOK_AGENTA1_W_POLACH), + # random.randint(0, LICZBA_POL_W_POZIOMIE - BOK_AGENTA1_W_POLACH)) + pole_lewe_gorne = PoleKraty(Krata, 1, 1) + pom = 'traktor_ikona.png' ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', pom)), (BOK_AGENTA1, BOK_AGENTA1)) Agent(Krata, pole_lewe_gorne, ikona) diff --git a/ramy_czyli_wiedza_agenta.py b/ramy_czyli_wiedza_agenta.py new file mode 100644 index 0000000..c7ec09c --- /dev/null +++ b/ramy_czyli_wiedza_agenta.py @@ -0,0 +1,77 @@ +from enumy_i_slowniki import * +from stale import * + + +class Wymiary: + def __init__(self, dlugosc, szerokosc, wysokosc): + self.dlugosc = dlugosc + self.szerokosc = szerokosc + self.wysokosc = wysokosc + + +class Mapa: + def __init__(self): + self.liczbaPolPoziomo = LICZBA_POL_W_POZIOMIE + self.liczbaPolPionowo = LICZBA_POL_W_PIONIE + self.bokPola = BOK_POLA + self.odstepMiedzyPolami = ODSTEP_MIEDZY_POLAMI + self.utworzPustaMape() + self.agent = None + + def utworzPustaMape(self): + self.krata = [] + for wiersz in range(self.liczbaPolPionowo): + self.krata.append([]) + for kolumna in range(self.liczbaPolPoziomo): + zawartosc_pola = ZawartoscPola.PUSTE + nowe_pole = PoleMapy(self, wiersz, kolumna, zawartosc_pola) + self.krata[wiersz].append(nowe_pole) + + +class PoleMapy: + def __init__(self, mapa: Mapa, wiersz, kolumna, zawartosc: ZawartoscPola): + self.mapa = mapa + self.bok = self.mapa.bokPola + self.wiersz = wiersz + self.kolumna = kolumna + self.zawartosc = zawartosc + + +class WarunkiPowietrza: + def __init__(self, temperatura, wilgotnosc): + self.temperatura = temperatura + self.wilgotnosc = wilgotnosc + + +class Polka: + def __init__(self, wymiary: Wymiary, udzwig, wysokoscOdPodlogi): + self.wymiary = wymiary + self.udzwig = udzwig + self.wysokoscOdPodlogi = wysokoscOdPodlogi + + +class Szafka: + def __init__(self, wymiary: Wymiary): + self.wymiary = wymiary + self.Polki = [] + self.zajmowanePola = [] + + def dodajPolke(self, polka: Polka): + self.Polki.append(polka) + + def dodajPole(self, pole: PoleMapy): + self.zajmowanePola.append(pole) + + +class Pomieszczenie: + def __init__(self, warunkiPowietrza: WarunkiPowietrza, wysokoscSufitu): + self.warunkiPowietrza = warunkiPowietrza + self.wysokoscSufitu = wysokoscSufitu + self.Szafki = [] + self.zajmowanePola = [] + + def dodajSzafke(self, szafka: Szafka): + self.Szafki.append(szafka) + + def dodajPole(self, pole: PoleMapy): + self.zajmowanePola.append(pole) diff --git a/stale.py b/stale.py index 41369c6..0d126b5 100644 --- a/stale.py +++ b/stale.py @@ -3,22 +3,22 @@ FPS = 5 # SZEROKOSC_OKNA = 1500 # WYSOKOSC_OKNA = 750 # -LICZBA_POL_W_POZIOMIE = 60 -LICZBA_POL_W_PIONIE = 30 -BOK_POLA = 20 -ODSTEP_MIEDZY_POLAMI = 2 +LICZBA_POL_W_POZIOMIE = 90 +LICZBA_POL_W_PIONIE = 50 +BOK_POLA = 15 +ODSTEP_MIEDZY_POLAMI = 1 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 # BIALY = (255, 255, 255) JASNOSZARY1 = (200, 200, 200) SZARY1 = (150, 150, 150) ZIELONY1 = (26, 122, 26) CZARNY = (0, 0, 0) +CIEMNY_BRAZOWY1 = (60, 19, 33) ### ###