示例#1
0
        /// <summary>
        /// Gets a way of coordinates changes when moving along given direction.
        /// </summary>
        /// <param name="direction">Direction to retrieve.</param>
        /// <returns>Vector representing the given direction.</returns>
        /// <exception cref="InvalidEnumArgumentException">The direction parameter value is invalid.</exception>
        public static Point GetCoordsChangesAlongDirection(WinningCombinationDirection direction)
        {
            switch (direction)
            {
            case WinningCombinationDirection.Horizontal:
                return(new Point(1, 0));

            case WinningCombinationDirection.Diagonal:
                return(new Point(1, 1));

            case WinningCombinationDirection.Vertical:
                return(new Point(0, 1));

            case WinningCombinationDirection.AntiDiagonal:
                return(new Point(-1, 1));

            default:
                throw new InvalidEnumArgumentException("direction", (int)direction,
                                                       typeof(WinningCombinationDirection));
            }
        }
示例#2
0
 /// <summary>
 /// Initializes a new instance of <see cref="WinConditionMetEventArgs"/>.
 /// </summary>
 /// <param name="mark">Mark that won.</param>
 /// <param name="startingPoint">Starting point of winning combination.</param>
 /// <param name="dir">Direction of winning combination.</param>
 public WinConditionMetEventArgs(Mark mark, Point startingPoint, WinningCombinationDirection dir)
 {
     WinningMark = mark;
     CombinationStartingPoint = startingPoint;
     Direction = dir;
 }