]> git.sesse.net Git - stockfish/blobdiff - src/movepick.h
MovePicker: retire per square MVV/LVA ordering
[stockfish] / src / movepick.h
index 5a38826188811eb634f053d5cd3396760325d69f..1c8d0d30fa08a629b4986cbba8708e5a3debe9c1 100644 (file)
@@ -34,6 +34,9 @@
 //// Types
 ////
 
+struct EvalInfo;
+struct SearchStack;
+
 /// 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
@@ -44,6 +47,8 @@
 
 class MovePicker {
 
+  MovePicker& operator=(const MovePicker&); // Silence a warning under MSVC
+
 public:
 
   enum MovegenPhase {
@@ -60,12 +65,11 @@ 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, const SearchStack& ss, Depth d);
   Move get_next_move();
   Move get_next_move(Lock &lock);
   int number_of_moves() const;
   int current_move_score() const;
-  MovegenPhase current_move_type() const;
   Bitboard discovered_check_candidates() const;
 
   static void init_phase_table();
@@ -76,7 +80,7 @@ private:
   void score_evasions();
   void score_qcaptures();
   Move pick_move_from_list();
-  int find_best_index();
+  int find_best_index() const;
 
   const Position& pos;
   Move ttMove, mateKiller, killer1, killer2;
@@ -86,7 +90,7 @@ private:
   Depth depth;
   int phaseIndex;
   int numOfMoves, numOfBadCaptures;
-  int movesPicked, badCapturesPicked;
+  int movesPicked;
   bool finished;
 };
 
@@ -101,7 +105,6 @@ private:
 /// a single reply to check.
 
 inline int MovePicker::number_of_moves() const {
-
   return numOfMoves;
 }