/// <summary> /// Set on ship's position choosen BoardElemType /// </summary> /// <param name="selectedShip">Ship</param> /// <param name="elem">Type</param> public void SetStatusAtShipPos(Ship selectedShip, BoardElementType elem) { switch (selectedShip.Orientation) { case ShipOrientation.OneSizeShip: BoardElements[selectedShip.StartPosition.X, selectedShip.StartPosition.Y] = elem; break; case ShipOrientation.Horisontal: for (int j = selectedShip.StartPosition.Y; j < selectedShip.StartPosition.Y + selectedShip.Size; j++) { BoardElements[selectedShip.StartPosition.X, j] = elem; } break; case ShipOrientation.Vertical: for (int i = selectedShip.StartPosition.X; i < selectedShip.StartPosition.X + selectedShip.Size; i++) { BoardElements[i, selectedShip.StartPosition.Y] = elem; } break; } if (elem == BoardElementType.KilledShip) { //Set an empty Positions around killed ship foreach (Position positions in Ship.GetPositionsAroundShip(selectedShip)) { if (this[positions] != BoardElementType.Border) { this[positions] = BoardElementType.Empty; } } } }