/// <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)); } }
/// <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; }