1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 16:53:09 +00:00

Another small tweak to skills

No functional change.
This commit is contained in:
Marco Costalba 2015-01-31 13:22:06 +01:00
parent 60c121f3b1
commit 81d6c4a0d6
2 changed files with 9 additions and 11 deletions

View file

@ -199,7 +199,7 @@ void Search::think() {
if (RootMoves.empty()) if (RootMoves.empty())
{ {
RootMoves.push_back(MOVE_NONE); RootMoves.push_back(RootMove(MOVE_NONE));
sync_cout << "info depth 0 score " sync_cout << "info depth 0 score "
<< UCI::value(RootPos.checkers() ? -VALUE_MATE : VALUE_DRAW) << UCI::value(RootPos.checkers() ? -VALUE_MATE : VALUE_DRAW)
<< sync_endl; << sync_endl;
@ -1383,15 +1383,13 @@ moves_loop: // When in check and at SpNode search starts from here
// then we choose the move with the resulting highest score. // then we choose the move with the resulting highest score.
for (size_t i = 0; i < multiPV; ++i) for (size_t i = 0; i < multiPV; ++i)
{ {
int score = RootMoves[i].score;
// This is our magic formula // This is our magic formula
score += ( weakness * int(RootMoves[0].score - score) int push = ( weakness * int(RootMoves[0].score - RootMoves[i].score)
+ variance * (rng.rand<unsigned>() % weakness)) / 128; + variance * (rng.rand<unsigned>() % weakness)) / 128;
if (score > maxScore) if (RootMoves[i].score + push > maxScore)
{ {
maxScore = score; maxScore = RootMoves[i].score + push;
best = RootMoves[i].pv[0]; best = RootMoves[i].pv[0];
} }
} }
@ -1444,7 +1442,7 @@ string UCI::pv(const Position& pos, Depth depth, Value alpha, Value beta) {
<< " nps " << pos.nodes_searched() * 1000 / elapsed; << " nps " << pos.nodes_searched() * 1000 / elapsed;
if (elapsed > 1000) // Earlier makes little sense if (elapsed > 1000) // Earlier makes little sense
ss << " hashfull " << TT.hashfull(); ss << " hashfull " << TT.hashfull();
ss << " tbhits " << TB::Hits ss << " tbhits " << TB::Hits
<< " time " << elapsed << " time " << elapsed

View file

@ -55,15 +55,15 @@ struct Stack {
struct RootMove { struct RootMove {
RootMove(Move m) : score(-VALUE_INFINITE), previousScore(-VALUE_INFINITE), pv(1, m) {} explicit RootMove(Move m) : pv(1, m) {}
bool operator<(const RootMove& m) const { return score > m.score; } // Ascending sort bool operator<(const RootMove& m) const { return score > m.score; } // Ascending sort
bool operator==(const Move& m) const { return pv[0] == m; } bool operator==(const Move& m) const { return pv[0] == m; }
void insert_pv_in_tt(Position& pos); void insert_pv_in_tt(Position& pos);
bool extract_ponder_from_tt(Position& pos); bool extract_ponder_from_tt(Position& pos);
Value score; Value score = -VALUE_INFINITE;
Value previousScore; Value previousScore = -VALUE_INFINITE;
std::vector<Move> pv; std::vector<Move> pv;
}; };