Esempio n. 1
0
 private void OrientateShipCorrectly(IShipPosition shipPosition)
 {
     if (shipPosition.StartingSquare.Column <= shipPosition.EndingSquare.Column && shipPosition.StartingSquare.Row <= shipPosition.EndingSquare.Row)
     {
         StartingSquare = shipPosition.StartingSquare;
         EndingSquare   = shipPosition.EndingSquare;
     }
     else
     {
         StartingSquare = shipPosition.EndingSquare;
         EndingSquare   = shipPosition.StartingSquare;
     }
 }
Esempio n. 2
0
        private IEnumerable <IGridSquare> NeighbourhoodGridSquares(IShipPosition position, int radius)
        {
            var positionList = new List <IGridSquare>();

            var startColumn = Math.Max(position.StartingSquare.Column - radius, 1);
            var endColumn   = Math.Min(position.EndingSquare.Column + radius, 10);
            var startRow    = Math.Max(Rows.IndexOf(position.StartingSquare.Row) - radius, 0);
            var endRow      = Math.Min(Rows.IndexOf(position.EndingSquare.Row) + radius, 9);

            for (var i = startRow; i < endRow + 1; i++)
            {
                for (var j = startColumn; j < endColumn + 1; j++)
                {
                    positionList.Add(new GridSquare(Rows[i], j));
                }
            }

            return(positionList);
        }
Esempio n. 3
0
 public Ship(IShipPosition shipPosition)
 {
     OrientateShipCorrectly(shipPosition);
 }