]> git.sesse.net Git - stockfish/blobdiff - src/movepick.h
Introduce MovePicker::isBadCapture() and use in probcut
[stockfish] / src / movepick.h
index ad76085bd86bbf08fae48ea02044a92a16e85dfb..fb3d4a62da030af55793b464da69c66c43dcf652 100644 (file)
 #if !defined MOVEPICK_H_INCLUDED
 #define MOVEPICK_H_INCLUDED
 
-#include "depth.h"
 #include "history.h"
+#include "move.h"
 #include "position.h"
+#include "types.h"
 
 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
-/// MovePicker::pick_next_move(), which returns a new legal move each time it
+/// MovePicker::get_next_move(), which returns a new legal move each time it
 /// is called, until there are no legal moves left, when MOVE_NONE is returned.
 /// In order to improve the efficiency of the alpha beta algorithm, MovePicker
-/// attempts to return the moves which are most likely to be strongest first.
+/// attempts to return the moves which are most likely to get a cut-off first.
 
 class MovePicker {
 
-  MovePicker& operator=(const MovePicker&); // silence a warning under MSVC
+  MovePicker& operator=(const MovePicker&); // Silence a warning under MSVC
 
 public:
-  MovePicker(const Position& p, Move ttm, Depth d, const History& h, SearchStack* ss, Value beta);
-  MovePicker(const Position& p, Move ttm, Depth d, const History& h);
+  MovePicker(const Position&, Move, Depth, const History&, SearchStack*, Value);
+  MovePicker(const Position&, Move, Depth, const History&);
   Move get_next_move();
+  bool isBadCapture() const;
 
 private:
   void score_captures();
@@ -56,7 +58,7 @@ private:
   int badCaptureThreshold, phase;
   const uint8_t* phasePtr;
   MoveStack *curMove, *lastMove, *lastGoodNonCapture, *badCaptures;
-  MoveStack moves[MOVES_MAX];
+  MoveStack moves[MAX_MOVES];
 };
 
 #endif // !defined(MOVEPICK_H_INCLUDED)