back to scratko.xyz
aboutsummaryrefslogtreecommitdiff
path: root/solution_algorithm.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'solution_algorithm.hpp')
-rw-r--r--solution_algorithm.hpp17
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);
};