forked from UNN/2026-rff_mp
31 lines
711 B
Python
31 lines
711 B
Python
from abc import ABC, abstractmethod
|
|
|
|
|
|
class PathFindingStrategy(ABC):
|
|
name = "Base"
|
|
|
|
def __init__(self):
|
|
self.visitedCount = 0
|
|
|
|
@abstractmethod
|
|
def findPath(self, maze, start, exitCell):
|
|
raise NotImplementedError
|
|
|
|
def _restore_path(self, parent, start, exitCell):
|
|
if exitCell is None or start is None:
|
|
return []
|
|
|
|
path = []
|
|
current = exitCell
|
|
|
|
while True:
|
|
path.append(current)
|
|
if current.x == start.x and current.y == start.y:
|
|
break
|
|
current = parent.get((current.x, current.y))
|
|
if current is None:
|
|
return []
|
|
|
|
path.reverse()
|
|
return path
|