X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmovepick.h;h=ced0a051654685cbe48fb2c99662d7604de4d38f;hp=a5ecb0662015edf7cb01d98dd506327e2031405b;hb=9e4befe3f1ea324bece88aee2e97b38659411c52;hpb=595a90dfd0cd393a8805f4f51cf5c5d8b264c121 diff --git a/src/movepick.h b/src/movepick.h index a5ecb066..ced0a051 100644 --- a/src/movepick.h +++ b/src/movepick.h @@ -38,6 +38,7 @@ struct SearchStack; enum MovegenPhase { + PH_NULL_MOVE, // Null move PH_TT_MOVES, // Transposition table move and mate killer PH_GOOD_CAPTURES, // Queen promotions and captures with SEE values >= 0 PH_KILLERS, // Killer moves from the current ply @@ -64,7 +65,7 @@ class MovePicker { MovePicker& operator=(const MovePicker&); // silence a warning under MSVC public: - MovePicker(const Position& p, Move ttm, Depth d, const History& h, SearchStack* ss = NULL); + MovePicker(const Position& p, Move ttm, Depth d, const History& h, SearchStack* ss = NULL, bool useNullMove = false); Move get_next_move(); Move get_next_move(Lock& lock); int number_of_moves() const; @@ -74,15 +75,16 @@ private: void score_captures(); void score_noncaptures(); void score_evasions(); - Move pick_move_from_list(); + void go_next_phase(); const Position& pos; const History& H; Move ttMoves[2], killers[2]; const MovegenPhaseT* phasePtr; - int movesPicked, numOfMoves, numOfBadCaptures; + int phase, movesPicked, numOfBadCaptures; bool finished; Bitboard dc, pinned; + MoveStack *curMove, *lastMove; MoveStack moves[256], badCaptures[64]; }; @@ -97,7 +99,7 @@ private: /// a single reply to check. inline int MovePicker::number_of_moves() const { - return numOfMoves; + return int(lastMove - moves); } /// MovePicker::discovered_check_candidates() returns a bitboard containing