diff --git a/agentActionType.py b/agentActionType.py new file mode 100644 index 0000000..b251b0c --- /dev/null +++ b/agentActionType.py @@ -0,0 +1,6 @@ +from enum import Enum + +class AgentActionType (Enum): + MOVE_FORWARD = 0 + TURN_LEFT = 1 + TURN_RIGHT = 2 \ No newline at end of file diff --git a/gameContext.py b/gameContext.py index d749c04..37939b0 100644 --- a/gameContext.py +++ b/gameContext.py @@ -1,6 +1,7 @@ -from typing import Tuple, List +from typing import Tuple, List, Dict import pygame from PIL import Image +from gridCellType import GridCellType class GameContext: dust_car_speed = 20 @@ -11,6 +12,15 @@ class GameContext: canvas = None _cell_size: int = 30 city = None + grid: Dict[Tuple[int, int], GridCellType] = {} + + def __init__(self) -> None: + self._init_grid() + + def _init_grid(self) -> None: + for i in range(1, 28): + for j in range(1, 28): + self.grid[(i, j)] = GridCellType.NOTHING def render_in_cell(self, cell: Tuple[int, int], img_path: str): img = Image.open(img_path) diff --git a/garbageCan.py b/garbageCan.py index 8585123..782e6f3 100644 --- a/garbageCan.py +++ b/garbageCan.py @@ -1,6 +1,7 @@ from garbage import Garbage from typing import List, Tuple from gameContext import GameContext +from gridCellType import GridCellType class GarbageCan: position: Tuple[int, int] @@ -17,4 +18,5 @@ class GarbageCan: self.garbage.remove(garbage) def render(self, game_context: GameContext) -> None: - game_context.render_in_cell(self.position, "imgs/container.png") \ No newline at end of file + game_context.render_in_cell(self.position, "imgs/container.png") + game_context.grid[self.position] = GridCellType.GARBAGE_CAN \ No newline at end of file diff --git a/gridCellType.py b/gridCellType.py new file mode 100644 index 0000000..d8e5e42 --- /dev/null +++ b/gridCellType.py @@ -0,0 +1,7 @@ +from enum import Enum + +class GridCellType(Enum): + NOTHING = 0 + STREET_VERTICAL = 1 + STREET_HORIZONTAL = 2 + GARBAGE_CAN = 3 \ No newline at end of file diff --git a/imgs/dust_car_down.png b/imgs/dust_car_down.png new file mode 100644 index 0000000..359ff9e Binary files /dev/null and b/imgs/dust_car_down.png differ diff --git a/imgs/dust_car.png b/imgs/dust_car_left.png similarity index 100% rename from imgs/dust_car.png rename to imgs/dust_car_left.png diff --git a/imgs/dust_car_right.png b/imgs/dust_car_right.png new file mode 100644 index 0000000..a330922 Binary files /dev/null and b/imgs/dust_car_right.png differ diff --git a/imgs/dust_car_up.png b/imgs/dust_car_up.png new file mode 100644 index 0000000..bf5572d Binary files /dev/null and b/imgs/dust_car_up.png differ diff --git a/main.py b/main.py index 6fd945a..467a645 100644 --- a/main.py +++ b/main.py @@ -9,7 +9,7 @@ pygame.init() canvas = pygame.display.set_mode((800, 800)) pygame.display.set_caption("Inteligentna śmieciarka") -dust_car_pil = Image.open('imgs/dust_car.png') +dust_car_pil = Image.open('imgs/dust_car_right.png') game_context = GameContext() game_context.dust_car_pil = dust_car_pil diff --git a/street.py b/street.py index 9287394..3ec4bd6 100644 --- a/street.py +++ b/street.py @@ -1,6 +1,7 @@ from enum import Enum from typing import Tuple from gameContext import GameContext +from gridCellType import GridCellType class StreetType (Enum): VERTICAL = 0 @@ -23,3 +24,4 @@ class Street: img_str: str = 'imgs/street_vertical.png' if self.street_type == StreetType.VERTICAL else 'imgs/street_horizontal.png' cell: Tuple[int, int] = (self.row_or_column, i) if self.street_type == StreetType.VERTICAL else (i, self.row_or_column) game_context.render_in_cell(cell, img_str) + game_context.grid[cell] = GridCellType.STREET_HORIZONTAL if self.street_type == StreetType.HORIZONTAL else GridCellType.STREET_VERTICAL