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; } }
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); }
public Ship(IShipPosition shipPosition) { OrientateShipCorrectly(shipPosition); }