コード例 #1
0
ファイル: MovesUtilities.cs プロジェクト: Fabernaz/Chess
        internal static IEnumerable <SquareCoordinate> GetAllInBetweenSquares(this SquareCoordinate startingCoordinate, SquareCoordinate endingCoordinate)
        {
            var ret = new List <SquareCoordinate>();

            if (startingCoordinate.IsOnDiagonal(endingCoordinate))
            {
                Extensions.AddRange(ret, GetDiagonalInBetweenPositions(startingCoordinate, endingCoordinate));
            }
            if (startingCoordinate.IsOnRankOrFile(endingCoordinate))
            {
                Extensions.AddRange(ret, GetStraightInBetweenPosition(startingCoordinate, endingCoordinate));
            }

            return(ret);
        }
コード例 #2
0
ファイル: MovesUtilities.cs プロジェクト: Fabernaz/Chess
 internal static bool IsOnRankFileOrDiagonal(this SquareCoordinate startingCoordinate, SquareCoordinate endingCoordinate)
 {
     return(startingCoordinate.IsOnRankOrFile(endingCoordinate) ||
            startingCoordinate.IsOnDiagonal(endingCoordinate));
 }