Пример #1
0
 private void ValidateOneDimensionShip(OneDimensionShip oneDimensionShip)
 {
     if (oneDimensionShip == null)
     {
         throw new ArgumentNullException(nameof(oneDimensionShip));
     }
     if (oneDimensionShip.Length <= 0)
     {
         throw new ArgumentException($"The {nameof(OneDimensionShip.Length)} of {nameof(OneDimensionShip)} argument is zero or negative.");
     }
     if (oneDimensionShip.StartPosition.Row < 0 || oneDimensionShip.StartPosition.Column < 0)
     {
         throw new ArgumentException($"{nameof(OneDimensionShip.StartPosition)} of {nameof(OneDimensionShip)} argument cannot have a negative coordinate.");
     }
 }
Пример #2
0
        public Ship CreateShip(OneDimensionShip oneDimensionShip)
        {
            ValidateOneDimensionShip(oneDimensionShip);
            var ship          = new Ship();
            var startPosition = oneDimensionShip.StartPosition;

            var position         = startPosition;
            var offsetInEachStep = GetPositionOffset(oneDimensionShip.Orientation);

            for (int i = 0; i < oneDimensionShip.Length; i++)
            {
                ship.Coordinates.Add(position);
                position = position + offsetInEachStep;
            }
            return(ship);
        }