+struct SPInfo{
+ std::string name;
+ bool settled;
+ SPInfo* parent;
+ int cost;
+};
+
+
+struct SPGoal{
+ virtual ~SPGoal(){}
+ virtual int operator()(const SPInfo* node) const = 0;
+};
+
+struct SimpleSPGoal : public SPGoal{
+ std::string _to;
+ SimpleSPGoal(std::string to):_to(to){};
+ ~SimpleSPGoal(){}
+ int operator()(const SPInfo* node) const{
+ if (node->name == _to)
+ return 1;
+ return 0;
+ }
+};
+