diff options
Diffstat (limited to 'solution_algorithm.hpp')
-rw-r--r-- | solution_algorithm.hpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/solution_algorithm.hpp b/solution_algorithm.hpp index f182aa8..792c270 100644 --- a/solution_algorithm.hpp +++ b/solution_algorithm.hpp @@ -28,6 +28,13 @@ public: return first->evaluation > second->evaluation; } }; + struct EqualNode { + bool operator()(const std::shared_ptr<Node>& first, + const std::shared_ptr<Node>& second) const { + return *first == *second; + } + }; + friend struct std::hash<std::shared_ptr<Node>>; friend class ASearch; }; @@ -48,18 +55,11 @@ struct std::hash<std::shared_ptr<Node>> { typedef std::vector<std::shared_ptr<Node>> vect_node; // using of // ComputeFreeMoves class ASearch { - struct EqualNode { - bool operator()(const std::shared_ptr<Node>& first, - const std::shared_ptr<Node>& second) const { - return *first == *second; - } - }; - std::priority_queue<std::shared_ptr<Node>, vect_node, Node::Comp> open_queue; std::unordered_set<std::shared_ptr<Node>, std::hash<std::shared_ptr<Node>>, - EqualNode> close_set; + Node::EqualNode> close_set; Node initial; Node goal; GameParams *gp; @@ -70,7 +70,6 @@ public: Node *FindSolution(); void ApplyFairEvaluator(Node &n) const; vect_node ComputeFreeMoves(const std::shared_ptr<Node>& n) const; - bool IsNearEmptyBox(const GameParams::coordinates c) const; void ShowSolution(Node *goal); }; |