#ifndef __PLANNER_H__
#define __PLANNER_H__
+#include <ext/hash_map>
+#include <vector>
+#include "action.h"
+
+class Node;
+
class Planner {
public:
+ Planner(std::vector<Action> actions, Literals init, Literals goal);
+ ~Planner();
+
+ void execute();
protected:
- Node start;
- hash_map addedNodes;
+
+ void makePlan(Node* node);
+ void addNode(Node* node);
+
+ Node* _start;
+ Node* _finish;
+ __gnu_cxx::hash_map<std::string,Node*> _addedEffects;
+ __gnu_cxx::hash_map<std::string,Action*> _actionEffects;
+ Literals _init;
+ Literals _goal;
+ std::vector<Node*> _addedNodes;
+ std::vector<Action*> _actions;
+};
#endif