Exemplo n.º 1
0
 /// <summary>
 /// Returns whether the given move is a dangerous pawn advance. A dangerous
 /// pawn advance is a pawn move that results in the pawn being in a position
 /// in which no enemy pawns can threaten or block it.
 /// </summary>
 /// <param name="move">The move to consider.</param>
 /// <param name="passedPawnPreventionBitboard">A bitboard giving the long term attack possibilities of the enemy pawns.</param>
 /// <returns>Whether the given move is a dangerous pawn advance.</returns>
 private Boolean IsDangerousPawnAdvance(Int32 move, UInt64 passedPawnPreventionBitboard)
 {
     return(Move.IsPawnAdvance(move) && ((1UL << Move.To(move)) & passedPawnPreventionBitboard) == 0);
 }