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.
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 jest 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 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 o tym, 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 (na skos).