Praca nad ramami (wiedzą agenta). Eksperymenty z kolorami i zawartością pól.
This commit is contained in:
parent
2afda6c7ff
commit
c9e4022dba
8
agent.py
8
agent.py
@ -64,6 +64,14 @@ class Agent:
|
|||||||
else:
|
else:
|
||||||
return False
|
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):
|
def zawroc(self):
|
||||||
if self.kierunek == Kierunek.GORA:
|
if self.kierunek == Kierunek.GORA:
|
||||||
self.kierunek = Kierunek.DOL
|
self.kierunek = Kierunek.DOL
|
||||||
|
14
enumy.py
14
enumy.py
@ -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
|
|
21
enumy_i_slowniki.py
Normal file
21
enumy_i_slowniki.py
Normal file
@ -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
|
||||||
|
}
|
27
krata.py
27
krata.py
@ -1,6 +1,6 @@
|
|||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
from enumy import *
|
from enumy_i_slowniki import *
|
||||||
from stale import *
|
from stale import *
|
||||||
|
|
||||||
|
|
||||||
@ -44,29 +44,38 @@ class Krata:
|
|||||||
self.liczbaPolPionowo = LICZBA_POL_W_PIONIE
|
self.liczbaPolPionowo = LICZBA_POL_W_PIONIE
|
||||||
self.bokPola = BOK_POLA
|
self.bokPola = BOK_POLA
|
||||||
self.odstepMiedzyPolami = ODSTEP_MIEDZY_POLAMI
|
self.odstepMiedzyPolami = ODSTEP_MIEDZY_POLAMI
|
||||||
self.krata = self.utworzPustaKrate()
|
self.utworzPustaKrate()
|
||||||
self.agent = None
|
self.agent = None
|
||||||
|
|
||||||
def utworzPustaKrate(self):
|
def utworzPustaKrate(self):
|
||||||
self.krata = []
|
self.krata = []
|
||||||
for rzad in range(self.liczbaPolPionowo):
|
for wiersz in range(self.liczbaPolPionowo):
|
||||||
self.krata.append([])
|
self.krata.append([])
|
||||||
for kolumna in range(self.liczbaPolPoziomo):
|
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):
|
def wyswietlKrate(self):
|
||||||
# self.narysujKrate()
|
self.narysujKrate()
|
||||||
self.narysujKrateAlternatywnie()
|
# self.narysujKrateAlternatywnie()
|
||||||
self.narysujAgenta()
|
self.narysujAgenta()
|
||||||
pygame.display.update()
|
pygame.display.update()
|
||||||
|
|
||||||
def narysujKrate(self):
|
def narysujKrate(self):
|
||||||
self.okno.fill(SZARY1)
|
self.okno.fill(SZARY1)
|
||||||
for rzad in range(self.liczbaPolPionowo):
|
for wiersz in range(self.liczbaPolPionowo):
|
||||||
for kolumna in range(self.liczbaPolPoziomo):
|
for kolumna in range(self.liczbaPolPoziomo):
|
||||||
start = (self.odstepMiedzyPolami + self.bokPola) * kolumna + self.odstepMiedzyPolami
|
start = (self.odstepMiedzyPolami + self.bokPola) * kolumna + self.odstepMiedzyPolami
|
||||||
gora = (self.odstepMiedzyPolami + self.bokPola) * rzad + self.odstepMiedzyPolami
|
gora = (self.odstepMiedzyPolami + self.bokPola) * wiersz + self.odstepMiedzyPolami
|
||||||
pygame.draw.rect(self.okno, BIALY, [start, gora, self.bokPola, self.bokPola])
|
kolor_pola = ZawartoscPolaNaKolorPola[self.krata[wiersz][kolumna]]
|
||||||
|
pygame.draw.rect(self.okno, kolor_pola, [start, gora, self.bokPola, self.bokPola])
|
||||||
|
|
||||||
def narysujKrateAlternatywnie(self):
|
def narysujKrateAlternatywnie(self):
|
||||||
self.okno.fill(SZARY1)
|
self.okno.fill(SZARY1)
|
||||||
|
7
main.py
7
main.py
@ -8,9 +8,10 @@ Krata = Krata(Okno)
|
|||||||
|
|
||||||
|
|
||||||
def dodaj_agenta():
|
def dodaj_agenta():
|
||||||
pole_lewe_gorne = PoleKraty(Krata, random.randint(0, LICZBA_POL_W_PIONIE - BOK_AGENTA1_W_POLACH),
|
# 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))
|
# random.randint(0, LICZBA_POL_W_POZIOMIE - BOK_AGENTA1_W_POLACH))
|
||||||
pom = 'test1_ikona.png'
|
pole_lewe_gorne = PoleKraty(Krata, 1, 1)
|
||||||
|
pom = 'traktor_ikona.png'
|
||||||
ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', pom)),
|
ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', pom)),
|
||||||
(BOK_AGENTA1, BOK_AGENTA1))
|
(BOK_AGENTA1, BOK_AGENTA1))
|
||||||
Agent(Krata, pole_lewe_gorne, ikona)
|
Agent(Krata, pole_lewe_gorne, ikona)
|
||||||
|
77
ramy_czyli_wiedza_agenta.py
Normal file
77
ramy_czyli_wiedza_agenta.py
Normal file
@ -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)
|
10
stale.py
10
stale.py
@ -3,22 +3,22 @@ FPS = 5
|
|||||||
# SZEROKOSC_OKNA = 1500
|
# SZEROKOSC_OKNA = 1500
|
||||||
# WYSOKOSC_OKNA = 750
|
# WYSOKOSC_OKNA = 750
|
||||||
#
|
#
|
||||||
LICZBA_POL_W_POZIOMIE = 60
|
LICZBA_POL_W_POZIOMIE = 90
|
||||||
LICZBA_POL_W_PIONIE = 30
|
LICZBA_POL_W_PIONIE = 50
|
||||||
BOK_POLA = 20
|
BOK_POLA = 15
|
||||||
ODSTEP_MIEDZY_POLAMI = 2
|
ODSTEP_MIEDZY_POLAMI = 1
|
||||||
SZEROKOSC_OKNA = LICZBA_POL_W_POZIOMIE * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) + ODSTEP_MIEDZY_POLAMI
|
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
|
WYSOKOSC_OKNA = LICZBA_POL_W_PIONIE * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) + ODSTEP_MIEDZY_POLAMI
|
||||||
#
|
#
|
||||||
BOK_AGENTA1_W_POLACH = 3
|
BOK_AGENTA1_W_POLACH = 3
|
||||||
BOK_AGENTA1 = BOK_AGENTA1_W_POLACH * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) - ODSTEP_MIEDZY_POLAMI
|
BOK_AGENTA1 = BOK_AGENTA1_W_POLACH * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) - ODSTEP_MIEDZY_POLAMI
|
||||||
KROK_AGENTA1 = 2
|
|
||||||
#
|
#
|
||||||
BIALY = (255, 255, 255)
|
BIALY = (255, 255, 255)
|
||||||
JASNOSZARY1 = (200, 200, 200)
|
JASNOSZARY1 = (200, 200, 200)
|
||||||
SZARY1 = (150, 150, 150)
|
SZARY1 = (150, 150, 150)
|
||||||
ZIELONY1 = (26, 122, 26)
|
ZIELONY1 = (26, 122, 26)
|
||||||
CZARNY = (0, 0, 0)
|
CZARNY = (0, 0, 0)
|
||||||
|
CIEMNY_BRAZOWY1 = (60, 19, 33)
|
||||||
###
|
###
|
||||||
|
|
||||||
###
|
###
|
||||||
|
Loading…
Reference in New Issue
Block a user