diff --git a/komissarovgo/docs2/data2/maze_lab/commands.py b/komissarovgo/docs2/data2/maze_lab/commands.py new file mode 100644 index 0000000..c915130 --- /dev/null +++ b/komissarovgo/docs2/data2/maze_lab/commands.py @@ -0,0 +1,27 @@ +from abc import ABC, abstractmethod +from models import Cell, Player + + +class Command(ABC): + + @abstractmethod + def execute(self) -> None: + pass + + @abstractmethod + def undo(self) -> None: + pass + + +class MoveCommand(Command): + + def __init__(self, player: Player, new_cell: Cell): + self._player = player + self._new_cell = new_cell + self._old_cell = player.current_cell + + def execute(self) -> None: + self._player.move_to(self._new_cell) + + def undo(self) -> None: + self._player.move_to(self._old_cell) \ No newline at end of file