Dev - C++ - Hundir la Flota

 
Vista:

Hundir la Flota

Publicado por Juan (1 intervención) el 18/01/2022 14:08:14
Hola buenas estoy intentando hacer en C++ el juego de Hundir la Flota, pero estoy atascando intentando señalizar (con una X) las zonas donde el usuario quiere que ponga sus barcos en el tablero (primero horizontal). El problema es que si el tamaño del barco es 5 y lo sitúa en la posición (4,2) la coordenada 4 no la voy a necesitar para nada se mantendrá fija, pero la coordenada 2 si, y por tanto se tendrá que poner una X en la posición (4,2),(4,3)(4,4),(4,5),(4,6), el problema que tengo es que no me sale como hacerlo con un bucle o con un do while

#include <iostream>
#include <string>
#include <cmath>
#include <fstream>

using namespace std;

const int FIL = 10;
const int COL = 10;
typedef int Tablero[FIL][COL];

void MuestraTablero(const Tablero);
//void RellenarTablero(Tablero);
void InicializaDesdeFichero();
void InicializaDesdeTeclado(Tablero);


char Menu()
{
char opcion;

cout<< "a)Leer las posiciones de los barcos desde fichero"<<endl;
cout<< "b)Pedir al usuario las posiciones de los barcos"<<endl;
cout<< "c)Disparar" <<endl;
cout<< "d)Salir" <<endl;
cout<< "Elige una opcion: ";
cin >> opcion;

return opcion;
}

/*
void RellenarTablero(Tablero T){

for(int i=0; i<FIL; i++){ //Filas

for(int j=0; j<COL; j++){ //Columnas

T[i][j] = '-';

}
}
}
*/

void MuestraTablero(const Tablero T){

for(int i=0; i<FIL; i++){ //Filas

for(int j=0; j<COL; j++){ //Columnas

cout<<T[i][j]<<" ";

}
cout<<endl;
}
}


void InicializaDesdeTeclado(Tablero T){

short int num_barcos, coord1, coord2, orientacion, num_barcos, tam_barcos;
short int contador = 1;
unsigned u; //fila
unsigned k; //columna
short int posiciones;


do
{
cout<<"Indique el numero de barcos: ";
cin>>num_barcos;
cout<<endl;
}while(num_barcos>6);

do{
cout<<"Barco "<<contador;
cout<<"\nIntroduce el tamaño del barco: ";
cin>>tam_barcos
cout<<"\nIndique orientacion (Horizontal = 1 , Vertical = 2): ";
cin>>orientacion;
cout<<"Introduzca las coordenas: ";
cout<<"\nCoordenada 1:";
cin>>coord1;
cout<<"Coordenada 2:";
cin>>coord2;

for (unsigned i=0; i<FIL; i++){

for(unsigned j=0; j<COL; j++)

T[i][j] = '-';

}

contador++;

cout<<"Coordenadas "<<"("<<coord1<<","<<coord2<<")";

///////7AQUI ESTÁ MI PROBLEMAAA//////////////////////////////////////////////////


if (orientacion == 1){

do{

suma=
posiciones = tam_barcos - 1;
k += posiciones
T[u][k] = 'X';
}while (k!=suma);



}

MuestraTablero(T);

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



}while(contador<=num_barcos);






}

/*
void InicializaDesdeFichero(){

ifstream configuracion;

configuracion.open (“config.txt”);

if(!configuracion){

cout<<"Error al abrir el fichero"<<endl;

else
{



}

configuracion.close();

}

}

*/

int main()
{
char op; //opcion del menu
Tablero tab;




//RellenarTablero(tab);
MuestraTablero(tab);

do
{
op = Menu();

switch (op)
{

case 'a':
cout << "Fichero con las posiciones de los barcos?: " << endl;


break;

case 'b':
cout << "Pedir al usuario las posiciones de los barcos" << endl;
InicializaDesdeTeclado(tab);


break;

case 'c':
cout << "Disparar" << endl;

break;

case 'd':
cout << "Salir" << endl;

break;

}
}while (op!= 'a' && op!= 'b' && op!= 'c' && op!= 'd');
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Hundir la Flota

Publicado por Da (1 intervención) el 26/04/2022 17:39:27
Hola Juan, has conseguido solucionar tu problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar