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:
|
||||
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
|
||||
|
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
|
||||
|
||||
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)
|
||||
|
7
main.py
7
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)
|
||||
|
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
|
||||
# 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)
|
||||
###
|
||||
|
||||
###
|
||||
|
Loading…
Reference in New Issue
Block a user