/// <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)] = '!'; } } }
/// <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)] = '!'; } } }
/// <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] = '!'; } } }