2026-rff_mp/pomelovsd/ExitMaze/Strategies/DFS.py
2026-05-23 13:37:43 +03:00

23 lines
594 B
Python

from Strategies.strat import PathFindingStrategy
from path import restore
class DFS(PathFindingStrategy):
def findPath(self, maze, start, exit):
stack = [start]
visited = {start}
parent = {}
while start:
current = stack.pop()
if current == exit:
break
for n in maze.get_neighbors(current):
if n not in visited:
visited.add(n)
parent[n] = current
stack.append(n)
return self.restore(parent, start, exit), len(visited)