X-Git-Url: https://ruin.nu/git/?p=popboot.git;a=blobdiff_plain;f=node.h;h=272bee93bc565977f03a9499f8d02f8255ed7831;hp=cfa02223854a9d66dfad039fc2fcd0deb57e2a76;hb=d385ba13a2ded8ce22b83c82d8a50c89a5d1d63e;hpb=3dadaa088d9fff7ca05cbb297f3d7e88179faccb diff --git a/node.h b/node.h index cfa0222..272bee9 100644 --- a/node.h +++ b/node.h @@ -8,32 +8,35 @@ class Node { public: - Node(const Action& action); + Node(const Action* action); Node(); Node(const Node& node); virtual ~Node(){} void addChild(Node* node); - const Action& action() const; - void execute(const literals& effects); + const Action* action() const; + void execute(const Literals& effects); bool executed() const; - const literals& effects() const; + const Literals& effects() const; + void satisfyCondition(std::string effect); protected: - Action _action; + const Action* _action; std::vector _children; - literals _preconditions; + Preconditions _preconditions; bool _executed; - literals _effects; + Literals _effects; }; -class StartNode : Node { +class StartNode :public Node { public: - StartNode(const literals& init); + StartNode(const Literals& init); + ~StartNode(){delete _action;} }; -class EndNode : Node { +class EndNode :public Node { public: - EndNode(const literals& goal); + EndNode(const Literals& goal); + ~EndNode(){delete _action;} }; #endif