#ifndef PATHFINDER_H
#define PATHFINDER_H

#include <vector>
#include <map>
#include "graph.h"

class PathFinder
{
private:
    static std::vector<GraphNode*> backtrack_path(GraphNode* start,GraphNode* goal, std::map<GraphNode*, GraphNode*> pred);

public:
    PathFinder();
    static std::vector<GraphNode*> a_star(GraphNode* start,GraphNode* goal,bool debug = false);
    static std::vector<GraphNode*> a_star_min_max(GraphNode* start,GraphNode* goal,bool debug = false);

};

class ComparePriority{
public:
    bool operator() (GraphNode*,GraphNode*s);
};
#endif // PATHFINDER_H
