26/05/17 20:45
lallo12
salve a tutti ho implementato un codice ma mi da un errore, qualcuno sa spiegarmi di cosa si tratta.
il mio codice è questo:
mi da questo errore:
|115|error: expected 'while' before 'void'|
il mio codice è questo:
/* Si vuole sviluppare un programma per la simulazione del gioco di 4 navicelle spaziali . La mappa da gioco risulta di forma rettangolare e di dimensioni 8x7. L’utente ha a disposizione una navicella ferma (rettangolo rosso in figura). Nel campo da gioco si muovono 3 navicelle avversarie che devono essere colpite (rettangolo giallo, blu e verde). */ #include <stdio.h> #include <stdlib.h> #include <time.h> //prototipi void muovi_gialla(int random, char campo[8][7], int *G_x, int *G_y); void muovi_verde(int random, char campo[8][7], int *V_x, int *V_y); void muovi_blue(int random, char campo[8][7], int *B_x, int *B_y); int controllo(int spara,int y); void pulisci(int sparato, char campo[8][7], int *x, int*y); int main(int argc, char *argv[]) { srand((unsigned int)time(0)); int i,j,G_x,G_y,B_x,B_y,V_x,V_y,R_x,R_y,random,sparato_G,sparato_B,sparato_V; int K=0; int spara=1; char campo[8][7]= {{'G', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', 'B', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', 'V'}, {' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', 'R', ' ', ' ', ' '}}; G_x=0;G_y=0; B_x=1;B_y=3; V_x=2;V_y=6; R_x=7;R_y=3; //posizionamento iniziale for(i=0;i<8;i++) { for(j=0;j<7;j++) printf("%c",campo[i][j]); printf("\n"); } K=0; //passi do{ K++; if (sparato_V!=1) //se la navicella non è stata colpita allora muoverla { random=rand()%10; muovi_verde(random, campo, &V_x,&V_y); printf("\tRandom V:%d",random); } else{ printf("la verde e' colpita\n"); } if (sparato_B!=1) { random=rand()%10; muovi_blue(random, campo, &B_x,&B_y); printf("\tRandom V:%d",random); } else{ printf("la blue e' colpita\n"); } if (sparato_G!=1) { random=rand()%10; muovi_gialla(random, campo, &G_x,&G_y); printf("\tRandom V:%d",random); } else{ printf("la gialla e' colpita\n"); } printf("\n"); for(i=0;i<8;i++) //visualizza sullo schermo il campo dopo il primo movimento delle navicelle { for(j=0;j<7;j++) printf("%c",campo[i][j]); printf("\n"); printf("\n\n"); printf("\n\t\t\t k=%d\n", K); printf("\t V=%d%d", V_x,V_y); if(sparato_V==1) { printf("colpita"); } printf("\n\t B=%d%d", B_x,B_y); if(sparato_B==1) { printf("colpita"); } printf("\n\t B=%d%d", G_x,G_y); if(sparato_G==1) { printf("colpita"); } printf("\n\nvuoi sparare? 1=SI alro int=NO \n\n"); scanf("&d",&spara); printf("\n"); if(sparato_V!=1) { sparato_V=controllo(spara, V_y); } if(sparato_B!=1) { sparato_B=controllo(spara, B_y); } if(sparato_G!=1) { sparato_G=controllo(spara, G_y); } /*questi controlli servono per controllare, in caso di sparo, se le navicelle si trovano in posizione*/ pulisci(sparato_V,campo, &V_x,&V_y); pulisci(sparato_B,campo, &B_x,&B_y); pulisci(sparato_G,campo, &G_x,&G_y); } while (((sparato_G!=1)|| (sparato_B!=1) || (sparato_V!=1)) && (K<100)); /*esegui il ciclo finchè tutte e tre le navicelle non sono state distrutte oppure il contatore passi è arrivato a 100*/ printf("\n\n\n Fine partita \n\n\n"); system("PAUSE"); return 0; } /* Funzioni movimento random: è il numero random generato nel main *x, *y sono coordinate delle navicelle che cambiano con il passare dei turni */ void muovi_gialla(int random, char campo[8][7], int *G_x,int *G_y) { if((random<3)&&(*G_y==6)) { campo[*G_x][*G_y]=' '; *G_y=0; } else if(random<3) { campo[*G_x][*G_y]=' '; *G_y=*G_y+1; } campo[*G_x][*G_y]='G'; } void muovi_verde(int random, char campo[8][7], int *V_x,int *V_y) { campo[*V_x][*V_y]=' '; if(random<4){ if(*V_y==6) *V_y=2; else if(*V_y==5) *V_y=1; else if(*V_y==4) *V_y=0; else *V_y=*V_y+3; } else if(random>=4 && random <=6) { if(*V_y==0) *V_y=5; else if(*V_y=1) *V_y=6; else *V_y=*V_y+2; } else if(random>=7) { if(*V_y==6) *V_y=0; else *V_y=*V_y+1; } campo[*V_y][*V_y]='V'; } void muovi_blue(int random, char campo[8][7], int *B_x,int *B_y) { campo[*B_x][*B_y]=' '; if (random<7) { if(*B_y==1) *B_y=6; else if(*B_y==0) *B_y=5; else *B_y=*B_y-2; } else if (random>7) { if(*B_y==0) *B_y=6; else *B_y=*B_y-1; } campo[*B_x][*B_y]='B'; } /* la function che segue controlla se una navicella e' stata colpita, controlla inoltre anche se l'utente ha inserito il valore 1(l'opzione per sparare ) o un altro intero (nel caso l'utente decidesse di non sparare)*/ int controllo(int spara, int y) { int sparato; if((spara==1)&&(y==3)) { sparato=1; } else { sparato=0; } return sparato; } void pulisci(int sparato, char campo[8][7], int *x, int *y) //pulisce dalla campo la navicella colpita { { if(sparato==1) campo[*x][*y]=' '; } } }
mi da questo errore:
|115|error: expected 'while' before 'void'|
Ultima modifica effettuata da lallo12 27/05/17 6:37
aaa