1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-07-11 19:49:14 +00:00

Fix indentation in movepicker.cpp

Fix indentation in movepicker.cpp and evaluate.cpp. Also move
the PickType enum out of global space.

No functional change
This commit is contained in:
Marco Costalba 2018-03-27 16:44:47 +02:00 committed by Stéphane Nicolet
parent a03e98dcd3
commit 280022baf7
3 changed files with 38 additions and 30 deletions

View file

@ -412,7 +412,7 @@ namespace {
constexpr Color Them = (Us == WHITE ? BLACK : WHITE); constexpr Color Them = (Us == WHITE ? BLACK : WHITE);
constexpr Bitboard Camp = (Us == WHITE ? AllSquares ^ Rank6BB ^ Rank7BB ^ Rank8BB constexpr Bitboard Camp = (Us == WHITE ? AllSquares ^ Rank6BB ^ Rank7BB ^ Rank8BB
: AllSquares ^ Rank1BB ^ Rank2BB ^ Rank3BB); : AllSquares ^ Rank1BB ^ Rank2BB ^ Rank3BB);
const Square ksq = pos.square<KING>(Us); const Square ksq = pos.square<KING>(Us);
Bitboard weak, b, b1, b2, safe, unsafeChecks, pinned; Bitboard weak, b, b1, b2, safe, unsafeChecks, pinned;

View file

@ -31,7 +31,7 @@ namespace {
QSEARCH_TT, QCAPTURE_INIT, QCAPTURE, QCHECK_INIT, QCHECK QSEARCH_TT, QCAPTURE_INIT, QCAPTURE, QCHECK_INIT, QCHECK
}; };
// Helper filter used with select_move() // Helper filter used with select()
const auto Any = [](){ return true; }; const auto Any = [](){ return true; };
// partial_insertion_sort() sorts moves in descending order up to and including // partial_insertion_sort() sorts moves in descending order up to and including
@ -62,7 +62,7 @@ namespace {
MovePicker::MovePicker(const Position& p, Move ttm, Depth d, const ButterflyHistory* mh, MovePicker::MovePicker(const Position& p, Move ttm, Depth d, const ButterflyHistory* mh,
const CapturePieceToHistory* cph, const PieceToHistory** ch, Move cm, Move* killers) const CapturePieceToHistory* cph, const PieceToHistory** ch, Move cm, Move* killers)
: pos(p), mainHistory(mh), captureHistory(cph), contHistory(ch), : pos(p), mainHistory(mh), captureHistory(cph), contHistory(ch),
refutations{{killers[0], 0}, {killers[1], 0}, {cm, 0}}, depth(d){ refutations{{killers[0], 0}, {killers[1], 0}, {cm, 0}}, depth(d) {
assert(d > DEPTH_ZERO); assert(d > DEPTH_ZERO);
@ -85,7 +85,7 @@ MovePicker::MovePicker(const Position& p, Move ttm, Depth d, const ButterflyHist
stage += (ttMove == MOVE_NONE); stage += (ttMove == MOVE_NONE);
} }
/// MovePicker constructor for ProbCut: we generate captures with SEE higher /// MovePicker constructor for ProbCut: we generate captures with SEE greater
/// than or equal to the given threshold. /// than or equal to the given threshold.
MovePicker::MovePicker(const Position& p, Move ttm, Value th, const CapturePieceToHistory* cph) MovePicker::MovePicker(const Position& p, Move ttm, Value th, const CapturePieceToHistory* cph)
: pos(p), captureHistory(cph), threshold(th) { : pos(p), captureHistory(cph), threshold(th) {
@ -129,14 +129,14 @@ void MovePicker::score() {
} }
} }
/// MovePicker::select_move() returns the next move satisfying a predicate function. /// MovePicker::select() returns the next move satisfying a predicate function.
/// It never returns the TT move. /// It never returns the TT move.
template<PickType T, typename Pred> template<MovePicker::PickType T, typename Pred>
Move MovePicker::select_move(Pred filter) { Move MovePicker::select(Pred filter) {
while (cur < endMoves) while (cur < endMoves)
{ {
if (T == BEST_SCORE) if (T == Best)
std::swap(*cur, *std::max_element(cur, endMoves)); std::swap(*cur, *std::max_element(cur, endMoves));
move = *cur++; move = *cur++;
@ -165,20 +165,23 @@ top:
case CAPTURE_INIT: case CAPTURE_INIT:
case PROBCUT_INIT: case PROBCUT_INIT:
case QCAPTURE_INIT: case QCAPTURE_INIT:
endBadCaptures = cur = moves; cur = endBadCaptures = moves;
endMoves = generate<CAPTURES>(pos, cur); endMoves = generate<CAPTURES>(pos, cur);
score<CAPTURES>(); score<CAPTURES>();
++stage; ++stage;
goto top; goto top;
case GOOD_CAPTURE: case GOOD_CAPTURE:
if (select_move<BEST_SCORE>([&](){ return pos.see_ge(move, Value(-55 * (cur-1)->value / 1024)) ? if (select<Best>([&](){
// Move losing capture to endBadCaptures to be tried later return pos.see_ge(move, Value(-55 * (cur-1)->value / 1024)) ?
true : (*endBadCaptures++ = move, false); })) // Move losing capture to endBadCaptures to be tried later
true : (*endBadCaptures++ = move, false); }))
return move; return move;
// Prepare the pointers to loop over the refutations array // Prepare the pointers to loop over the refutations array
cur = std::begin(refutations), endMoves = std::end(refutations); cur = std::begin(refutations);
endMoves = std::end(refutations);
// If the countermove is the same as a killer, skip it // If the countermove is the same as a killer, skip it
if ( refutations[0].move == refutations[2].move if ( refutations[0].move == refutations[2].move
@ -189,9 +192,9 @@ top:
/* fallthrough */ /* fallthrough */
case REFUTATION: case REFUTATION:
if (select_move<NEXT>([&](){ return move != MOVE_NONE if (select<Next>([&](){ return move != MOVE_NONE
&& !pos.capture(move) && !pos.capture(move)
&& pos.pseudo_legal(move); })) && pos.pseudo_legal(move); }))
return move; return move;
++stage; ++stage;
/* fallthrough */ /* fallthrough */
@ -199,6 +202,7 @@ top:
case QUIET_INIT: case QUIET_INIT:
cur = endBadCaptures; cur = endBadCaptures;
endMoves = generate<QUIETS>(pos, cur); endMoves = generate<QUIETS>(pos, cur);
score<QUIETS>(); score<QUIETS>();
partial_insertion_sort(cur, endMoves, -4000 * depth / ONE_PLY); partial_insertion_sort(cur, endMoves, -4000 * depth / ONE_PLY);
++stage; ++stage;
@ -206,35 +210,38 @@ top:
case QUIET: case QUIET:
if ( !skipQuiets if ( !skipQuiets
&& select_move<NEXT>([&](){return move != refutations[0] && select<Next>([&](){return move != refutations[0]
&& move != refutations[1] && move != refutations[1]
&& move != refutations[2];})) && move != refutations[2];}))
return move; return move;
// Prepare the pointers to loop over the bad captures // Prepare the pointers to loop over the bad captures
cur = moves, endMoves = endBadCaptures; cur = moves;
endMoves = endBadCaptures;
++stage; ++stage;
/* fallthrough */ /* fallthrough */
case BAD_CAPTURE: case BAD_CAPTURE:
return select_move<NEXT>(Any); return select<Next>(Any);
case EVASION_INIT: case EVASION_INIT:
cur = moves; cur = moves;
endMoves = generate<EVASIONS>(pos, cur); endMoves = generate<EVASIONS>(pos, cur);
score<EVASIONS>(); score<EVASIONS>();
++stage; ++stage;
/* fallthrough */ /* fallthrough */
case EVASION: case EVASION:
return select_move<BEST_SCORE>(Any); return select<Best>(Any);
case PROBCUT: case PROBCUT:
return select_move<BEST_SCORE>([&](){ return pos.see_ge(move, threshold); }); return select<Best>([&](){ return pos.see_ge(move, threshold); });
case QCAPTURE: case QCAPTURE:
if (select_move<BEST_SCORE>([&](){ return depth > DEPTH_QS_RECAPTURES if (select<Best>([&](){ return depth > DEPTH_QS_RECAPTURES
|| to_sq(move) == recaptureSquare; })) || to_sq(move) == recaptureSquare; }))
return move; return move;
// If we did not find any move and we do not try checks, we have finished // If we did not find any move and we do not try checks, we have finished
@ -247,11 +254,12 @@ top:
case QCHECK_INIT: case QCHECK_INIT:
cur = moves; cur = moves;
endMoves = generate<QUIET_CHECKS>(pos, cur); endMoves = generate<QUIET_CHECKS>(pos, cur);
++stage; ++stage;
/* fallthrough */ /* fallthrough */
case QCHECK: case QCHECK:
return select_move<NEXT>(Any); return select<Next>(Any);
} }
assert(false); assert(false);

View file

@ -109,10 +109,10 @@ typedef Stats<PieceToHistory, W32, NOT_USED, PIECE_NB, SQUARE_NB> ContinuationHi
/// when MOVE_NONE is returned. In order to improve the efficiency of the alpha /// 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 /// beta algorithm, MovePicker attempts to return the moves which are most likely
/// to get a cut-off first. /// to get a cut-off first.
enum PickType { NEXT, BEST_SCORE };
class MovePicker { class MovePicker {
enum PickType { Next, Best };
public: public:
MovePicker(const MovePicker&) = delete; MovePicker(const MovePicker&) = delete;
MovePicker& operator=(const MovePicker&) = delete; MovePicker& operator=(const MovePicker&) = delete;
@ -122,7 +122,7 @@ public:
Move next_move(bool skipQuiets = false); Move next_move(bool skipQuiets = false);
private: private:
template<PickType T, typename Pred> Move select_move(Pred); template<PickType T, typename Pred> Move select(Pred);
template<GenType> void score(); template<GenType> void score();
ExtMove* begin() { return cur; } ExtMove* begin() { return cur; }
ExtMove* end() { return endMoves; } ExtMove* end() { return endMoves; }