コード例 #1
0
        /// <summary>
        /// Places the ship going down.
        /// </summary>
        /// <param name="startPosition">Start position.</param>
        /// <param name="ship">Ship.</param>
        /// <param name="row">Row.</param>
        /// <param name="col">Col.</param>
        private void placeShipGoingDown(int startPosition, Ship ship, int row, int col)
        {
            for (int i = startPosition; i <= (startPosition + ((ship.getSize() - 1) * this.xSize)); i = i + xSize)
            {
                values[i] = ship.getMarker();

                if (avoidAdjacentShips)
                {
                    //Mark area to left of ship
                    if (col != 0)
                    {
                        values[i - 1] = '!';
                    }

                    //Mark area to right of ship
                    if (col != this.xSize - 1)
                    {
                        values[i + 1] = '!';
                    }
                }
            }

            if (avoidAdjacentShips)
            {
                //Mark area above ship
                if (row > 0)
                {
                    values[startPosition - this.xSize] = '!';
                }

                //Mark area below ship
                if (row != this.ySize - 1)
                {
                    values[startPosition + (ship.getSize() * this.xSize)] = '!';
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Places the ship going up.
        /// </summary>
        /// <param name="startPosition">Start position.</param>
        /// <param name="ship">Ship.</param>
        /// <param name="row">Row.</param>
        /// <param name="col">Col.</param>
        private void placeShipGoingUp(int startPosition, Ship ship, int row, int col)
        {
            for (int i = startPosition; i >= (startPosition - ((ship.getSize() - 1) * this.xSize)); i = i - xSize)
            {
                values[i] = ship.getMarker();

                if (avoidAdjacentShips)
                {
                    //Mark area to left of ship
                    if (col != 0)
                    {
                        values[i - 1] = '!';
                    }

                    //Mark area to right of ship
                    if (col != this.xSize - 1)
                    {
                        values[i + 1] = '!';
                    }
                }
            }

            if (avoidAdjacentShips)
            {
                //Mark area below ship (start position is at bottom of ship)
                if (row < this.ySize - 1)
                {
                    values[startPosition + this.xSize] = '!';
                }

                //Mark area above top of ship
                if (row - ship.getSize() > 0)
                {
                    values[startPosition - (ship.getSize() * this.xSize)] = '!';
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// Places the ship going left.
        /// </summary>
        /// <param name="startPosition">Start position.</param>
        /// <param name="ship">Ship.</param>
        /// <param name="row">Row.</param>
        /// <param name="col">Col.</param>
        private void placeShipGoingLeft(int startPosition, Ship ship, int row, int col)
        {
            for (int i = startPosition; i > (startPosition - ship.getSize()); i--)
            {
                values[i] = ship.getMarker();

                if (avoidAdjacentShips)
                {
                    //Mark area above ship
                    if (row != 0)
                    {
                        values[i - this.xSize] = '!';
                    }

                    //Mark area below ship
                    if (row != this.ySize - 1)
                    {
                        values[i + this.xSize] = '!';
                    }
                }
            }

            if (avoidAdjacentShips)
            {
                //Mark area to left of ship
                if (col - ship.getSize() >= 0)
                {
                    values[startPosition - ship.getSize()] = '!';
                }

                //Mark area to right of ship
                if (col < this.xSize - 1)
                {
                    values[startPosition + 1] = '!';
                }
            }
        }