from abc import ABC, abstractmethod

from task2.mazeObjects.maze import Maze
from task2.mazeObjects.cell import Cell
from task2.mazeObjects.path import Path

class PathFindingStrategy(ABC):
    """Интерфейс PathFindingStrategy с методом findPath(maze, start, exit),
    возвращающим список клеток пути (от старта до выхода включительно) или пустой список, если пути нет."""
    
    @abstractmethod
    def findPath(self, maze: Maze, start: Cell, exit: Cell) -> Path:
        """Возвращает список клеток пути от старта до выхода включительно. Пути нет - пустой список."""
        raise NotImplementedError