from abc import ABC, abstractmethod from source.classes.cell import Cell from source.classes.maze import Maze class PathFindingStrategy(ABC): """Интерфейс для семейства алгоритмов поиска пути от старта до выхода.""" @abstractmethod def findPath(self, maze: Maze) -> tuple[list[tuple[int, int]], int]: """Возвращающим список координат клеток пути (от старта до выхода включительно) или пустой список, если пути нет и количество посещённых клеток.""" pass @property @abstractmethod def name(self) -> str: """Возвращает название алгоритма""" pass