]> git.sesse.net Git - stockfish/blobdiff - src/movepick.h
MovePicker: use EvalInfo to skip generating captures
[stockfish] / src / movepick.h
index 5a38826188811eb634f053d5cd3396760325d69f..e8a32c9316cd3e836e6777f4588cf1e65f185ac7 100644 (file)
@@ -34,6 +34,8 @@
 //// Types
 ////
 
+struct EvalInfo;
+
 /// MovePicker is a class which is used to pick one legal move at a time from
 /// the current position.  It is initialized with a Position object and a few
 /// moves we have reason to believe are good.  The most important method is
@@ -60,7 +62,7 @@ public:
     PH_STOP
   };
 
-  MovePicker(const Position& p, bool pvnode, Move ttm, Move mk, Move k1, Move k2, Depth d);
+  MovePicker(const Position& p, bool pvnode, Move ttm, Move mk, Move k1, Move k2, Depth d, EvalInfo* ei = NULL);
   Move get_next_move();
   Move get_next_move(Lock &lock);
   int number_of_moves() const;
@@ -77,11 +79,14 @@ private:
   void score_qcaptures();
   Move pick_move_from_list();
   int find_best_index();
+  int MovePicker::find_best_index(Bitboard* squares, int values[]);
 
   const Position& pos;
   Move ttMove, mateKiller, killer1, killer2;
   Bitboard pinned, dc;
   MoveStack moves[256], badCaptures[64];
+  Bitboard capSquares;\r
+  int capSqValues[64];
   bool pvNode;
   Depth depth;
   int phaseIndex;