Example #1
0
        /// <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;
                    }
                }
            }
        }