/// <summary> /// Returns the <see cref="Piece"/> part of a given colored piece. /// </summary> public static Piece GetPiece(this ColoredPiece coloredPiece) => (Piece)((int)coloredPiece % Constants.PieceCount);
/// <summary> /// Gets a vector which is true for all squares that contain the given colored piece. /// </summary> public ulong GetVector(ColoredPiece coloredPiece) => GetVector(coloredPiece.GetColor()) & GetVector(coloredPiece.GetPiece());
/// <summary> /// Returns the <see cref="Color"/> of a given piece. /// </summary> public static Color GetColor(this ColoredPiece coloredPiece) => (Color)((int)coloredPiece / Constants.PieceCount);
/// <summary> /// Enumerates all squares that are occupied by the given colored piece. /// </summary> public IEnumerable <Square> AllSquaresOccupiedBy(ColoredPiece coloredPiece) => currentPosition.GetVector(coloredPiece).AllSquares();