mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-25 19:46:55 +08:00
Fixed a bug that Learner::qsearch() recognizes stalemate as checkmated.
This commit is contained in:
@@ -1854,21 +1854,26 @@ namespace Learner
|
||||
{
|
||||
Stack stack[MAX_PLY + 10], * ss = stack + 7;
|
||||
Move pv[MAX_PLY + 1];
|
||||
std::vector<Move> pvs;
|
||||
|
||||
init_for_search(pos, ss);
|
||||
ss->pv = pv; // <20>Ƃ肠<C682><E882A0><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>~<7E>[<5B>łǂ<C582><C782><EFBFBD><EFBFBD>o<EFBFBD>b<EFBFBD>t<EFBFBD>@<40><><EFBFBD>Ȃ<EFBFBD><C882>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>B
|
||||
|
||||
if (pos.is_draw(0)) {
|
||||
// Return draw value if draw.
|
||||
return { VALUE_DRAW, {} };
|
||||
}
|
||||
|
||||
// <20>l<EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>̂<EFBFBD>
|
||||
if (pos.is_mated())
|
||||
if (MoveList<LEGAL>(pos).size() == 0)
|
||||
{
|
||||
pvs.push_back(MOVE_NONE);
|
||||
return ValueAndPV(mated_in(/*ss->ply*/ 0 + 1), pvs);
|
||||
// Return the mated value if checkmated.
|
||||
return { mated_in(/*ss->ply*/ 0 + 1), {} };
|
||||
}
|
||||
|
||||
auto bestValue = ::qsearch<PV>(pos, ss, -VALUE_INFINITE, VALUE_INFINITE, DEPTH_ZERO);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ꂽPV<50><56><EFBFBD>Ԃ<EFBFBD><D482>B
|
||||
std::vector<Move> pvs;
|
||||
for (Move* p = &ss->pv[0]; is_ok(*p); ++p)
|
||||
pvs.push_back(*p);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user