реализован поиск в глубину

This commit is contained in:
Proninvv 2026-05-19 18:17:35 +03:00
parent 550af0164c
commit 2449eeb26f

View File

@ -0,0 +1,33 @@
from strategy import PathFindingStrategy
from Maze import Maze, Cell
class DFSStrategy(PathFindingStrategy):
def findPath(maze: Maze, start, exit):
if not start or not exit:
return []
visited = set()
path = []
def dfs(root: Cell) -> bool:
visited.add(root)
path.append(root)
if root == exit:
return True
neighbors = maze.getNeighbors(root)
for neighbor in neighbors:
if neighbor not in visited:
if dfs(neighbor):
return True
path.pop()
return False
if dfs(start):
return path
return []