Pesquisar na Comunidade
Mostrando resultados para as tags ''#vetor #vetor2d #c++ #duvida''.
Encontrado 1 registro
-
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? :(