+ int max_depth;
+ int depth;
+
+};
+
+class Move
+{
+ public:
+ Move(Piece * new_p, Square & new_s, double new_score) : p(new_p), s(new_s), score(new_score) {}
+ virtual ~Move() {}
+ Move(const Move & cpy) : p(cpy.p), s(cpy.s), score(cpy.score) {}
+
+ Piece * p;
+ Square & s;
+ double score;
+
+ bool operator>(const Move & m) const {return score > m.score;}
+ bool operator<(const Move & m) const {return score < m.score;}