#!/usr/bin/env python # coding: utf-8 # In[ ]: from typing import Optional from modelsMaze import Maze from modelsCell import Cell class Player: """Игрок, перемещающийся по лабиринту.""" def __init__(self, maze: Maze, start_cell: Cell): self.maze = maze self.current_cell = start_cell self._previous_cell: Optional[Cell] = None def move_to(self, cell: Cell) -> bool: """Переместить игрока в указанную клетку (если она проходима).""" if cell and cell.is_passable(): self._previous_cell = self.current_cell self.current_cell = cell return True return False def undo_move(self) -> bool: """Отменить последнее перемещение.""" if self._previous_cell: self.current_cell = self._previous_cell self._previous_cell = None return True return False @property def position(self) -> Cell: return self.current_cell