diff --git a/agentActionType.py b/agentActionType.py index abbf382..10fe0d8 100644 --- a/agentActionType.py +++ b/agentActionType.py @@ -4,4 +4,5 @@ class AgentActionType (Enum): MOVE_FORWARD = 0 TURN_LEFT = 1 TURN_RIGHT = 2 + EMPTY_CAN = 3 UNKNOWN = None \ No newline at end of file diff --git a/gameContext.py b/gameContext.py index b454bd2..6f6295f 100644 --- a/gameContext.py +++ b/gameContext.py @@ -14,6 +14,7 @@ class GameContext: city = None grid: Dict[Tuple[int, int], GridCellType] = {} dust_car = None + landfill = None def __init__(self) -> None: self._init_grid() diff --git a/gridCellType.py b/gridCellType.py index 68f37bf..fd88aab 100644 --- a/gridCellType.py +++ b/gridCellType.py @@ -5,4 +5,5 @@ class GridCellType(Enum): STREET_VERTICAL = 1 STREET_HORIZONTAL = 2 GARBAGE_CAN = 3 - VISITED_GARBAGE_CAN = 4 \ No newline at end of file + VISITED_GARBAGE_CAN = 4 + LANDFILL = 5 \ No newline at end of file diff --git a/imgs/landfill.png b/imgs/landfill.png new file mode 100644 index 0000000..6aa52ca Binary files /dev/null and b/imgs/landfill.png differ diff --git a/landfill.py b/landfill.py new file mode 100644 index 0000000..575db9b --- /dev/null +++ b/landfill.py @@ -0,0 +1,39 @@ +from typing import Tuple +from gameContext import GameContext +from garbage import RecognizedGarbage +from gridCellType import GridCellType + +class Landfill: + position: Tuple[int, int] = [] + paper: list[RecognizedGarbage] + plastic_and_metal: list[RecognizedGarbage] = [] + glass: list[RecognizedGarbage] = [] + bio: list[RecognizedGarbage] = [] + mixed: list[RecognizedGarbage] = [] + + def __init__(self, position: Tuple[int, int]) -> None: + self.position = position + + def add_paper(self, paper: list[RecognizedGarbage]) -> None: + for p in paper: + self.paper.append(p) + + def add_plastic_and_metal(self, plastic_and_metal: list[RecognizedGarbage]) -> None: + for p in plastic_and_metal: + self.plastic_and_metal.append(p) + + def add_glass(self, glass: list[RecognizedGarbage]) -> None: + for g in glass: + self.glass.append(g) + + def add_paper(self, bio: list[RecognizedGarbage]) -> None: + for b in bio: + self.bio.append(b) + + def add_mixed(self, mixed: list[RecognizedGarbage]) -> None: + for m in mixed: + self.mixed.append(m) + + def render(self, game_context: GameContext) -> None: + game_context.render_in_cell(self.position, 'imgs/landfill.png') + game_context.grid[self.position] = GridCellType.LANDFILL \ No newline at end of file diff --git a/movement.py b/movement.py index 1947a50..8b8fe07 100644 --- a/movement.py +++ b/movement.py @@ -39,7 +39,7 @@ def move_dust_car(actions: list[AgentActionType], game_context: GameContext) -> elif game_context.grid[street_position] == GridCellType.STREET_VERTICAL: game_context.render_in_cell(street_position, "imgs/street_vertical.png") pygame.display.update() - time.sleep(0.5) + time.sleep(0.15) diff --git a/startup.py b/startup.py index 03e782b..f5b7279 100644 --- a/startup.py +++ b/startup.py @@ -6,6 +6,7 @@ from typing import Tuple, List from street import Street, StreetType from garbageTruck import GarbageTruck from garbageCan import GarbageCan +from landfill import Landfill def startup(game_context: GameContext): @@ -15,6 +16,7 @@ def startup(game_context: GameContext): car = create_dust_car(game_context) car.render(game_context) game_context.dust_car = car + _create_landfill(game_context) def create_dust_car(game_context: GameContext) -> GarbageTruck: return GarbageTruck((3, 3)) @@ -57,4 +59,10 @@ def create_trashcans() -> List[GarbageCan]: trashcans.append(GarbageCan((17, 9))) trashcans.append(GarbageCan((24, 17))) trashcans.append(GarbageCan((26, 4))) - return trashcans \ No newline at end of file + return trashcans + +def _create_landfill(game_context: GameContext) -> None: + landfil_position = (23,24) + landfill = Landfill(landfil_position) + game_context.landfill = landfill + landfill.render(game_context) \ No newline at end of file