/*
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
- Copyright (C) 2008-2010 Marco Costalba, Joona Kiiski, Tord Romstad
+ Copyright (C) 2008-2012 Marco Costalba, Joona Kiiski, Tord Romstad
Stockfish is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
return RESULT_INVALID;
// Check if a king can be captured
- if ( bit_is_set(wk_attacks(), blackKingSquare)
- || (bit_is_set(pawn_attacks(), blackKingSquare) && sideToMove == WHITE))
+ if ( (wk_attacks() & blackKingSquare)
+ || ((pawn_attacks() & blackKingSquare) && sideToMove == WHITE))
return RESULT_INVALID;
// The position is an immediate win if it is white to move and the
&& sideToMove == WHITE
&& whiteKingSquare != pawnSquare + DELTA_N
&& ( square_distance(blackKingSquare, pawnSquare + DELTA_N) > 1
- || bit_is_set(wk_attacks(), pawnSquare + DELTA_N)))
+ || (wk_attacks() & (pawnSquare + DELTA_N))))
return RESULT_WIN;
// Check for known draw positions
// Case 2: King can capture pawn
if ( sideToMove == BLACK
- && bit_is_set(bk_attacks(), pawnSquare) && !bit_is_set(wk_attacks(), pawnSquare))
+ && (bk_attacks() & pawnSquare) && !(wk_attacks() & pawnSquare))
return RESULT_DRAW;
// Case 3: Black king in front of white pawn