Skip to content

Commit

Permalink
Solution
Browse files Browse the repository at this point in the history
  • Loading branch information
RadeonT800 committed Oct 17, 2024
1 parent b165b7d commit 514e5f9
Showing 1 changed file with 60 additions and 1 deletion.
61 changes: 60 additions & 1 deletion app/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,63 @@ class Cargo:
def __init__(self, weight: int) -> None:
self.weight = weight

# write your code here

class BaseRobot:
def __init__(
self, name: str,
weight: int,
coords: list[int] | None = None
) -> None:
self.name = name
self.weight = weight
self.coords = coords if coords else [0, 0]

def go_forward(self, step: int = 1) -> None:
self.coords[1] += step

def go_back(self, step: int = 1) -> None:
self.coords[1] -= step

def go_left(self, step: int = 1) -> None:
self.coords[0] -= step

def go_right(self, step: int = 1) -> None:
self.coords[0] += step

def get_info(self) -> str:
return f"Robot: {self.name}, Weight: {self.weight}"


class FlyingRobot(BaseRobot):
def __init__(
self, name: str,
weight: int,
coords: list[int] | None = None
) -> None:
super().__init__(name, weight)
self.coords = coords if coords else [0, 0, 0]

def go_up(self, step: int = 1) -> None:
self.coords[2] += step

def go_down(self, step: int = 1) -> None:
self.coords[2] -= step


class DeliveryDrone(FlyingRobot):
def __init__(
self, name: str,
weight: int, max_load_weight: int,
current_load: int | None,
coords: list[int] | None = None
) -> None:
super().__init__(name, weight, coords)
self.max_load_weight = max_load_weight
self.current_load = current_load

def hook_load(self, cargo: Cargo) -> None:
if self.current_load is None and cargo.weight <= self.max_load_weight:
self.current_load = cargo

def unhook_load(self) -> None:
self.current_load = None

0 comments on commit 514e5f9

Please sign in to comment.