52 lines
2.1 KiB
Markdown
52 lines
2.1 KiB
Markdown
####Język i biblioteki - opis uruchomienia
|
|
Projekt piszemy w języku Python 3.
|
|
Graficzna reprezentacja jest stworzona przy użyciu biblioteki
|
|
Pygame. Oprócz tego zostały również użyte moduły:
|
|
queue, collections,
|
|
oraz itertools i enum.
|
|
|
|
|
|
####Środowisko agenta
|
|
|
|
![Przykładowe środowisko agenta](srodowisko_agenta.png)
|
|
|
|
Środowiskiem agenta jest krata o wymiarze x na y
|
|
w Pythonie reprezentowana jest przez 2-wymiarową listę
|
|
składającą się z obiektów klasy Tile, oraz Pack. \
|
|
|
|
#####Generowanie mapy
|
|
Generowanie mapy w ramach której będzie działać agent
|
|
odbywa się przy pomocy znacznie zmodyfikowanego algorytmu
|
|
Depth First Search, z nałożonym ograniczeniem ilości
|
|
regałów które mogą być wygenerowane na mapie.
|
|
|
|
**Obiekt Tile** reprezentuje pole na kracie, np regał, lub podłogę.
|
|
Przechowuje on także pozycję pola na kracie
|
|
|
|
**Obiekt Pack** to paczka, zawiera on informacje o kategorii paczki,
|
|
oraz o tym na jakim polu leży, a także jej status.
|
|
Status może przyjąć wartość LOOSE(paczka leży na podłodze), \
|
|
STORED(paczka jest na właściwym regale we właściwym miejscu magazynu), albo STORED_BAD_LOCATION(paczka jest na regale, ale w złej lokalizacji)
|
|
|
|
####Regał
|
|
Reprezentowany przez obiekt Tile posiadający kategorię 'rack'
|
|
Kategoria zawiera informacje czy pole danej kategorii może przechowywać paczkę,
|
|
czy agent może po nim przejść(po podłodze może, po regale nie).
|
|
Regał posiada również informacje jaka gabarytowo paczka
|
|
może być na nim przechowywana.
|
|
|
|
###Agent
|
|
Agent jest reprezentowany przez czarny okrąg na planszy.
|
|
W kodzie programu jest on reprezentowany przez obiekt klasy Agent,
|
|
obecnie posiada on informacje o swoich współrzędnych, oraz czy właśnie transportuje paczkę czy nie.
|
|
Przy początku symulacji agent zostaje umieszczony w losowym
|
|
miejscu, które nie jest regałem, ani nie leży na nim paczka.
|
|
Możliwe ruchy do wykonania przez agenta na planszy to:
|
|
- ruch 1 pole w prawo
|
|
- ruch 1 pole w lewo
|
|
- ruch 1 pole do góry
|
|
- ruch 1 pole w dół \
|
|
Agent może wykonywać tylko 1 z tych ruchów w jednym kroku,
|
|
czyli nie jest w stanie poruszyć się jednocześnie w
|
|
prawo i do góry.
|