изменил mazesolver теперь он выводит найденый маршрут

This commit is contained in:
GordStep 2026-05-20 23:16:07 +03:00
parent 0f5089fb24
commit 8f4cf09083
2 changed files with 12 additions and 3 deletions

View File

@ -2,11 +2,14 @@ import time
from source.strategy.strategy import SearchStats, PathFindingStrategy from source.strategy.strategy import SearchStats, PathFindingStrategy
from source.bububu.observer import Observer, Event
from source.classes.maze import Maze
class MazeSolver: class MazeSolver:
def __init__(self, maze, strategy: PathFindingStrategy): def __init__(self, maze: Maze, strategy: PathFindingStrategy, observer: Observer):
self.maze = maze self.maze = maze
self.strategy = strategy self.strategy = strategy
self.observer = observer
def strategyName(self): def strategyName(self):
return self.strategy.name return self.strategy.name
@ -19,6 +22,12 @@ class MazeSolver:
path, visited_cells = self.strategy.findPath(self.maze) path, visited_cells = self.strategy.findPath(self.maze)
finish_time = time.perf_counter() finish_time = time.perf_counter()
self.observer.update(Event(
event="path_found",
player_position=self.maze.exit,
path=path
))
return SearchStats( return SearchStats(
timeMs=finish_time - start_time, timeMs=finish_time - start_time,
visitedCells=visited_cells, visitedCells=visited_cells,

View File

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