]> git.sesse.net Git - stockfish/blobdiff - src/position.cpp
Fix repetition detection bug
[stockfish] / src / position.cpp
index 2508db669dfb2241ed0e4c322fbfb6fbd8d0cfe0..0336a832a363291d4c07d5ade63899db790a9bca 100644 (file)
@@ -1678,6 +1678,7 @@ Value Position::compute_non_pawn_material(Color c) const {
 /// Position::is_draw() tests whether the position is drawn by material,
 /// repetition, or the 50 moves rule. It does not detect stalemates, this
 /// must be done by the search.
+// FIXME: Currently we are not handling 50 move rule correctly when in check
 
 bool Position::is_draw() const {
 
@@ -1691,7 +1692,7 @@ bool Position::is_draw() const {
       return true;
 
   // Draw by repetition?
-  for (int i = 2; i < Min(Min(gamePly, st->rule50), st->pliesFromNull); i += 2)
+  for (int i = 4; i <= Min(Min(gamePly, st->rule50), st->pliesFromNull); i += 2)
       if (history[gamePly - i] == st->key)
           return true;