2026-rff_mp/pomelovsd/ExitMaze/Strategies/BFS.py
2026-05-25 16:02:23 +03:00

26 lines
690 B
Python

from Strategies.strat import PathFindingStrategy
from Strategies.path import restore
from collections import deque
class BFS(PathFindingStrategy):
def findPath(self, maze, start, exit):
if exit is None:
return [], 0
queue = deque([start])
visited = {start}
parent = {}
while queue:
current = queue.popleft()
if current == exit:
break
for n in maze.getNeighbors(current):
if n not in visited:
visited.add(n)
parent[n] = current
queue.append(n)
return restore(parent, start, exit), len(visited)