Galera, tenho que escrever um programa para o jogo batalha naval e estou encontrando dificuldades em como incluir os navios no mapa. Sempre que um navio começa/ termina na borda, ele volta para a ultima coluna da linha anterior ou pula para a primeira coluna da linha seguinte, respectivamente. 
  
  
Segue uma parte do código: 
  
void Ship::setShip(char ship, int ship_size, char tabPlayer[9][9]){
 
int coordinate1, coordinate2, auxCol, row, col, optCord = 0;
char position;
bool vertical = true;
 
cout << "Select the row you want to place: " << endl;
cin >> row;
 
cout << "Select the collumn you want to place: " << endl;
cin >> col;
 
cout << "Select the ship direction: vertical or horizontal (V/H). " << endl;
cin >> position;
 
if (position == 'H' || position == 'h')
vertical = false;
 
if (vertical == false)
{   
   coordinate1 = col - (ship_size - 1);
   coordinate2 = col + (ship_size - 1);
   int min_ = 0 + (ship_size - 1 );
   int max_ = 9 - (ship_size - 1 );
 
   if ( col >= min_ && col <= max_ ) 
   {
   cout << "For the second coordinate, select one of the options: " << endl;
   cout << "1: " << "[" << row << ", " << coordinate1 << "]" << endl;
   cout << "2: " << "[" << row << ", " << coordinate2 << "]" << endl;
   cin >> optCord; 
 
   if ( optCord == 1 )
   {
      for (int j = coordinate1 ; j <= col; ++j) 
      {
         tabPlayer[row][j] = ship;                        //ERRO
       }
    }
    else
    {
        for (int j = col; j <= coordinate2; ++j)
        {  
           tabPlayer[row][j] = ship;
        }
     }
}
 
Se eu executar o comando setShip('A', 5, tabPlayer[9][9]), sendo 'A' o caracter que eu quero inserir, 5 como tamanho do navio e a vetor 2D que irei utilizar, e escolher a row = 3 e col = 4 e setar como posição horizontal, ele calculará automaticamente quais seram as duas possibilidade de posicionar o navio. 
  
As opções serão ou [3][0], ou [3][8]. Se eu escolher a segunda opção, funciona beleza, mas a primeira opção, fica assim: 
  
  
-      -      -      -      -      -      -      -      -      - 
-      -      -      -      -      -      -      -      -      -  
-      -      -      -      -      -      -      -      -      A 
A    A     A     A     A     -     -      -      -      - 
-      -      -      -      -      -      -      -      -      - 
-      -      -      -      -      -      -      -      -      - 
-      -      -      -      -      -      -      -      -      - 
-      -      -      -      -      -      -      -      -      - 
-      -      -      -      -      -      -      -      -      - 
-      -      -      -      -      -      -      -      -      - 
  
O mesmo occore quando a última posição fica na borda. Ele pula de linha e escreve. Qual seria o problema? :(