Se que debia haber hecho una copia de seguridad, pero no la hice y ahora la e liao
aqui os dejo la funcion que tengo hecha
Código:
void generar_enemigo ( int tablero_E [filas] [columnas])
{
int posicion_X;
int posicion_Y;
for (int cont = 4; cont >= 1; cont--)
{
for (int cont2 = 1; cont2 <= 4; cont2++)
for (int cont3 = 1; cont3 <= cont; cont3++)
{
int orientacion = rand () % 1; //Orientacion Horizontal o vertical.
int temp;
if (orientacion == 0) //Orientacion horizontal
{
temp = 0; // Variable temporal
do
{
posicion_Y = rand () % 10 + 1;
if (cont == 4)// Para que no genere en posiciones donde el barco se saldria del tablero por el eje X
posicion_X = rand () % 7 + 1;
if (cont == 3)
posicion_X = rand () % 8 + 1;
if (cont == 2)
posicion_X = rand () % 9 + 1;
if (cont == 1)
posicion_X = rand () % 10 + 1;
for (int a = posicion_X - 1; a <= (posicion_X + cont + 1); a++) //comprueba si todas las casillas adyacentes son 0
for (int b = posicion_Y - 1;b <= posicion_Y + 1; b++)
temp+= tablero_E [b] [a];
}
while (temp != 0);
for (int colocar = posicion_X; colocar <= (posicion_X + cont);colocar++)
tablero_E [posicion_Y] [colocar] = 1;
}
if (orientacion == 1) //Orientacion vertical
{
temp = 0; // Variable temporal
do
{
posicion_X = rand () % 10 + 1;
if (cont == 4)// Para que no genere en posiciones donde el barco se saldria del tablero por el eje Y
posicion_Y = rand () % 7 + 1;
if (cont == 3)
posicion_Y = rand () % 8 + 1;
if (cont == 2)
posicion_Y = rand () % 9 + 1;
if (cont == 1)
posicion_Y = rand () % 10 + 1;
for (int a = posicion_Y - 1; a <= (posicion_Y + cont + 1); a++) //comprueba si todas las casillas adyacentes son 0
for (int b = posicion_X - 1;b <= posicion_X + 1; b++)
temp+= tablero_E [a] [b];
}
while (temp != 0);
for (int colocar = posicion_Y; colocar <= (posicion_Y + cont);colocar++)
tablero_E [colocar] [posicion_X] = 1;
}
}
}
return;
}


