изменил mazesolver теперь он выводит найденый маршрут
This commit is contained in:
parent
0f5089fb24
commit
8f4cf09083
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user