23 lines
780 B
Python
23 lines
780 B
Python
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[Cell], int]:
|
|
"""Возвращающим список клеток пути (от старта до выхода включительно) или пустой список, если пути нет и количество посещённых клеток."""
|
|
pass
|
|
@property
|
|
@abstractmethod
|
|
def name(self) -> str:
|
|
"""Возвращает название алгоритма"""
|
|
pass
|
|
|
|
|
|
|