From 0ecc920a09f479cb9b568716597e0756da557174 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sat, 19 May 2012 08:38:23 +0100 Subject: [PATCH] Add a known draw case in kpk bitbase generation Early classify as known draws the positions where white king is trapped on the rook file. Suggested by Dan Honeycutt. No functional change. Signed-off-by: Marco Costalba --- src/bitbase.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/bitbase.cpp b/src/bitbase.cpp index b01a03d4..ceb94a0f 100644 --- a/src/bitbase.cpp +++ b/src/bitbase.cpp @@ -156,7 +156,7 @@ namespace { && rank_of(psq) < RANK_7) return DRAW; - // Case 4: White king in front of pawn and black has opposition + // Case 4: White king in front of pawn and black has opposition if ( stm == WHITE && wksq == psq + DELTA_N && bksq == wksq + DELTA_N + DELTA_N @@ -168,6 +168,13 @@ namespace { && file_of(psq) == FILE_A) return DRAW; + // Case 6: White king trapped on the rook file + if ( file_of(wksq) == FILE_A + && file_of(psq) == FILE_A + && rank_of(wksq) > rank_of(psq) + && bksq == wksq + 2) + return DRAW; + return UNKNOWN; } -- 2.39.2