2022-03-07 20:41:12 +01:00
import os
2022-03-21 22:12:01 +01:00
from agent import *
2022-04-16 16:45:37 +02:00
from okno import *
2022-03-27 23:08:35 +02:00
from ramy_czyli_wiedza_agenta import *
2022-04-06 14:05:40 +02:00
# aby działalo w oknie + rozdzielczość ekranu
# ctypes.windll.shcore.SetProcessDpiAwareness(1)
2022-03-07 20:41:12 +01:00
2022-04-16 16:45:37 +02:00
okno_pygame = pygame . display . set_mode ( ( SZEROKOSC_OKNA , WYSOKOSC_OKNA ) )
2022-03-07 20:41:12 +01:00
pygame . display . set_caption ( " Okno1 " )
2022-04-16 16:45:37 +02:00
krata_magazynu = Krata ( okno_pygame )
2022-04-06 14:05:40 +02:00
Pomieszczenie = Pomieszczenie ( WarunkiPowietrza ( 0 , 0 ) , 0 )
2022-03-22 11:20:58 +01:00
2022-03-21 22:05:28 +01:00
def dodaj_agenta ( ) :
2022-04-16 16:45:37 +02:00
# pole_lewe_gorne = PoleKraty(krata_magazynu, random.randint(0, LICZBA_POL_W_PIONIE - BOK_AGENTA1_W_POLACH),
2022-03-22 21:52:05 +01:00
# random.randint(0, LICZBA_POL_W_POZIOMIE - BOK_AGENTA1_W_POLACH))
2022-04-16 16:45:37 +02:00
# pole_lewe_gorne = PoleKraty(krata_magazynu, LICZBA_POL_W_PIONIE - BOK_AGENTA1_W_POLACH, int(LICZBA_POL_W_POZIOMIE / 2))
pole_lewe_gorne = PoleKraty ( krata_magazynu , 0 , 0 )
2022-03-22 21:52:05 +01:00
pom = ' traktor_ikona.png '
2022-03-21 22:05:28 +01:00
ikona = pygame . transform . scale ( pygame . image . load ( os . path . join ( ' Ikony ' , pom ) ) ,
( BOK_AGENTA1 , BOK_AGENTA1 ) )
2022-04-16 16:45:37 +02:00
Agent ( krata_magazynu , pole_lewe_gorne , ikona )
2022-04-06 14:05:40 +02:00
# zawsze na poczatku polnoc
2022-04-16 16:45:37 +02:00
krata_magazynu . agent . kierunek = Kierunek . POLNOC
2022-04-06 14:05:40 +02:00
2022-03-09 12:27:02 +01:00
2022-04-06 14:05:40 +02:00
def dodaj_szafke ( numerSzafki , iloscPolek , iloscMiejscNaPolce , dostepZeStrony , poczatek_wiersz , poczatek_kolumna ) :
2022-03-27 23:08:35 +02:00
wymiary_szafki = Wymiary ( 0 , 0 , 0 )
2022-04-06 14:05:40 +02:00
szafka = Szafka ( numerSzafki , wymiary_szafki , iloscPolek , iloscMiejscNaPolce , dostepZeStrony , poczatek_wiersz ,
2022-04-16 16:45:37 +02:00
poczatek_kolumna , krata_magazynu )
2022-03-27 23:08:35 +02:00
Pomieszczenie . dodajSzafke ( szafka )
2022-04-06 14:05:40 +02:00
def losowy_cel ( ) :
kierunek = Kierunek ( random . randint ( 0 , 3 ) )
2022-04-16 16:45:37 +02:00
wiersz = random . randint ( 0 , krata_magazynu . liczbaPolPionowo - 1 )
kolumna = random . randint ( 0 , krata_magazynu . liczbaPolPoziomo - 1 )
return Stan ( kierunek , PoleKraty ( krata_magazynu , wiersz , kolumna ) )
def zaznacz_cel_na_mapie ( cel : Stan ) :
wiersz = cel . poleStartoweGorne . wiersz
kolumna = cel . poleStartoweGorne . kolumna
if krata_magazynu . krata [ wiersz ] [ kolumna ] == ZawartoscPola . PUSTE :
krata_magazynu . krata [ wiersz ] [ kolumna ] = ZawartoscPola . CEL
def nadaj_cel_agentowi ( agent : Agent ) :
agent . cel = losowy_cel ( )
zaznacz_cel_na_mapie ( agent . cel )
print ( " CEL: " , agent . cel . poleStartoweGorne . wiersz , agent . cel . poleStartoweGorne . kolumna )
2022-04-06 14:05:40 +02:00
2022-03-08 23:00:29 +01:00
def main ( ) :
2022-04-16 16:45:37 +02:00
# dla kraty 30 x 15
# dodaj_szafke("A", 2, 12, "P", 2, 2)
# dodaj_szafke("B", 2, 12, "L", 2, 3)
# dodaj_szafke("C", 2, 5, "P", 1, 6)
# dodaj_szafke("D", 2, 6, "L", 1, 7)
# dodaj_szafke("C", 2, 4, "P", 9, 6)
# dodaj_szafke("D", 2, 3, "L", 10, 7)
# dodaj_szafke("E", 2, 8, "P", 3, 11)
# dodaj_szafke("F", 2, 10, "L", 2, 13)
# dodaj_szafke("H", 2, 12, "L", 1, 18)
# dodaj_szafke("I", 2, 7, "P", 5, 23)
# dodaj_szafke("J", 2, 12, "L", 1, 25)
# dodaj_szafke("G", 2, 10, "P", 5, 29)
# dla kraty 10 x 10
dodaj_szafke ( " A " , 1 , 8 , " P " , 1 , 1 )
dodaj_szafke ( " B " , 1 , 8 , " L " , 1 , 4 )
dodaj_szafke ( " C " , 1 , 8 , " P " , 1 , 6 )
dodaj_szafke ( " C " , 1 , 8 , " P " , 1 , 8 )
2022-04-06 14:05:40 +02:00
2022-03-22 11:20:58 +01:00
dodaj_agenta ( )
2022-04-06 14:05:40 +02:00
2022-04-16 16:45:37 +02:00
okno1 = Okno ( krata_magazynu , krata_magazynu . agent )
okno1 . wyswietlOkno ( )
2022-04-06 14:05:40 +02:00
2022-04-16 16:45:37 +02:00
while True :
2022-04-06 14:05:40 +02:00
# cel to Stan (pole kraty gdzie ma stać agent, aby położyć paczkę na półkę, w obiekcie klasy Miejsce jest to artybut dostęp + kierunek <-na razie niepotrzebny)
2022-04-16 16:45:37 +02:00
if krata_magazynu . agent . cel is None :
nadaj_cel_agentowi ( krata_magazynu . agent )
krata_magazynu . agent . idzDoCelu ( )
2022-03-08 18:38:43 +01:00
2022-03-07 20:41:12 +01:00
2022-04-16 16:45:37 +02:00
try :
main ( )
except pygame . error :
pygame . quit ( )