From: Joona Kiiski Date: Mon, 24 Aug 2009 15:00:35 +0000 (+0300) Subject: Add Null move support to MovePicker. X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=f6d245291664e1a521b3810051365c48c82bac78 Add Null move support to MovePicker. No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/movepick.cpp b/src/movepick.cpp index 0b887c99..f50f16b0 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -43,7 +43,7 @@ namespace { /// Variables CACHE_LINE_ALIGNMENT - const MovegenPhaseT MainSearchPhaseTable[] = { PH_STOP, PH_TT_MOVES, PH_GOOD_CAPTURES, PH_KILLERS, PH_NONCAPTURES, PH_BAD_CAPTURES, PH_STOP}; + const MovegenPhaseT MainSearchPhaseTable[] = { PH_STOP, PH_NULL_MOVE, PH_TT_MOVES, PH_GOOD_CAPTURES, PH_KILLERS, PH_NONCAPTURES, PH_BAD_CAPTURES, PH_STOP}; const MovegenPhaseT EvasionsPhaseTable[] = { PH_STOP, PH_EVASIONS, PH_STOP}; const MovegenPhaseT QsearchWithChecksPhaseTable[] = { PH_STOP, PH_TT_MOVES, PH_QCAPTURES, PH_QCHECKS, PH_STOP}; const MovegenPhaseT QsearchWithoutChecksPhaseTable[] = { PH_STOP, PH_TT_MOVES, PH_QCAPTURES, PH_STOP}; @@ -63,7 +63,7 @@ namespace { /// move ordering is at the current node. MovePicker::MovePicker(const Position& p, Move ttm, Depth d, - const History& h, SearchStack* ss) : pos(p), H(h) { + const History& h, SearchStack* ss, bool useNullMove) : pos(p), H(h) { ttMoves[0] = ttm; if (ss) { @@ -115,6 +115,9 @@ Move MovePicker::get_next_move() { phasePtr++; switch (*phasePtr) { + case PH_NULL_MOVE: + break; + case PH_TT_MOVES: movesPicked = 0; // This is used as index to ttMoves[] break; diff --git a/src/movepick.h b/src/movepick.h index a5ecb066..46cf69dd 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;