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; }