aqui el codigo que entregue y quiere q sea el mismo code que modifique pero realmente si me cuesta evaluar con una sola posicion no se como hacer con varias posiciones al mismo tiempo para determinar si esta undido el barco y tambien el colocarlos en el tablero por ser de varias secciones.
Código
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h> #include <windows.h> // Posiciones: '0'=desocupado | '1'=Hay barco | '2'=Barco destruido void wait(int seconds) // Funcion 'clock' para el tiempo de juego { clock_t endwait; endwait = clock() + seconds * CLOCKS_PER_SEC; while( clock() < endwait ) {} } void imprimir(); void iniciar(); int i, j, k, jugador[10][10], oponente[10][10], opcion1, opcion2, puntajejugador=0, puntajeoponente=0; // Variables globales time_t start,end; double dif, tiempototal=0; //________________________________________________________________________________________________ void imprimir() // Funcion que imprime el tablero de juego { printf("\t\t\t\t\t Tiempo transcurrido= %.1f segundos\n\n", tiempototal); for(i=1;i<=10;i++) // Imprime tablero del oponente { printf("\n\t"); for(j=1;j<=10;j++) { if(oponente[i][j]==3) { printf(" #"); } else { if(oponente[i][j]==2) // Imprime 'X' si vale 2 { printf(" X"); } else { printf(" -"); } } } if(i==3) { printf("\tOPONENTE"); } else { if(i==1) { printf("\t\t\tPuntaje oponente: %d", puntajeoponente); } } } printf("\n\n\t ______________________________\n\n"); for(i=1;i<=10;i++) // Imprime el tablero del jugador { printf("\n\t"); for(j=1;j<=10;j++) { if(jugador[i][j]==3) { printf(" #"); } else { if(jugador[i][j]==2) // Imprime 'X' si vale 2 || 'O' si vale 1 { printf(" X"); } else { if(jugador[i][j]==1) { printf(" O"); } else { printf(" -"); } } } } if(i==3) { printf("\tJUGADOR"); } else { if(i==1) { printf("\t\t\tPuntaje jugador: %d", puntajejugador); } } } printf("\n\n"); } //_______________________________________________________________________________________________ void iniciar() // Rellena con '0' el arreglo y coloca los barcos { for(i=1;i<=10;i++) // Llena todo con '0' { for(j=1;j<=10;j++) { jugador[i][j]=0; oponente[i][j]=0; } } printf("\n\n Dame las coordenadas de tus barcos~\n\n"); srand(time(NULL)); for(k=1;k<=10;k++) // Distribuye los barcos { imprimir(); i=1+rand()%10; // Distribuye los barcos oponentes j=1+rand()%10; while(oponente[i][j]==1) { i=1+rand()%10; j=1+rand()%10; } oponente[i][j]=1; // La posicion de los barcos valdra 1 printf("\n\tX%d = ", k); scanf("%d", &opcion2); while(opcion2<1 || opcion2>10) { printf(" Escoje un valor valido ( 1 a 10 )\n\n\tX%d = ", k); scanf("%d", &opcion2); } printf("\n\tY%d = ", k); scanf("%d", &opcion1); while(opcion1<1 || opcion1>10) { printf("\n Escoje un valor valido ( 1 a 10 )\n\n\tY%d = ", k); scanf("%d", &opcion1); } if(jugador[opcion1][opcion2]==1) { printf("\n Ese valor ya existe..."); getche(); k=k-1; } jugador[opcion1][opcion2]=1; system("cls"); } } void presentacion() { system("color 0B"); printf("\n\n\t ~BATALLA NAVAL~\n\n\t\t#\n\t\t#|\n\t\t#|#\n\t\t#|##\n\t\t#|###\n\t\t#|####"); printf("\n\t\t#|#####\n\t\t#|######\n\t#########################\n\t _______________________"); printf("\n\t ####/)###############\n\t ###(/##############\n\t #################\n\t ###############"); printf("\n\n\n\t1- JUGAR\n\n\t2- SALIR\n\n\n\tDame tu opcion:"); } //_______________________________________________________________________________________________ main() // Inicia el programa (main) { int res, auxiliar, probabilidadcpu, destruidosoponente=0, destruidosjugador=0, ganador; float dificultadcpu=0.5; presentacion(); scanf("%d", &res); system("cls"); switch(res) { // Eliges la opcion Jugar o Salir case 1: { iniciar(); // Llama a la funcion iniciar printf("\n\n\n\t\t Preparado?\n\n"); wait(2); printf("\n\t\t AHORA!!!"); wait(1); do { time(&start); system("cls"); // Limpia la pantalla imprimir(); printf(" Es tu turno! Dame la posicion que deseas atacar~\n\n"); printf("\tX = "); scanf("%d", &opcion2); while(opcion2<1 || opcion2>10) { printf("\n Escoje un valor valido ( 1 a 10 )\n\n\tX = "); scanf("%d", &opcion2); } printf("\tY = "); scanf("%d", &opcion1); while(opcion1<1 || opcion1>10) { printf("\n Escoje un valor valido ( 1 a 10 )\n\n\tY = "); scanf("%d", &opcion1); } auxiliar=oponente[opcion1][opcion2]; oponente[opcion1][opcion2]=3; system("cls"); imprimir(); oponente[opcion1][opcion2]=auxiliar; if(oponente[opcion1][opcion2]==1) { oponente[opcion1][opcion2]=2; destruidosoponente=destruidosoponente+1; puntajejugador=puntajejugador+200; printf("\n Haz acertado!!\n\n"); } else { printf("\n Haz fallado...\n\n"); } system("PAUSE"); system("cls"); if(destruidosoponente==5) { printf("\n\n\n\n\t\t\tHAZ GANADO!!"); getche(); }