from src.maze_builder import TextFileMazeBuilder from src.pathfinding import BFSStrategy, DFSStrategy, AStarStrategy, DijkstraStrategy # Загружаем лабиринт builder = TextFileMazeBuilder() maze = builder.build_from_file("data/demo_maze.txt") print("Лабиринт:") print(maze) print(f"\nСтарт: ({maze.start.x}, {maze.start.y})") print(f"Выход: ({maze.exit.x}, {maze.exit.y})") # Тестируем все алгоритмы strategies = [BFSStrategy(), DFSStrategy(), AStarStrategy(), DijkstraStrategy()] for strategy in strategies: print(f"\n{'='*40}") print(f"Алгоритм: {strategy.get_name()}") print('='*40) path, visited = strategy.find_path(maze, maze.start, maze.exit) print(f"Посещено клеток: {visited}") print(f"Длина пути: {len(path)}") if path: print("Путь найден!") # ← убрал f, или добавь переменную if len(path) > 10: print(f"Начало: {[(c.x, c.y) for c in path[:5]]}...") print(f"Конец: ...{[(c.x, c.y) for c in path[-5:]]}") else: print(f"Путь: {[(c.x, c.y) for c in path]}") else: print("Путь не найден")