//Funzione Partita void partita(int cod[], int dec[], int lun_cod, int tentativi, int elem_cod, int num_gio, giocatore players[], giocatore codificatore, giocatore giocatoriclass[],int gv,int gc,int *pass){ int cgpg,contaps,tur; int i,j,c,d,k; int aco[lun_cod]; int ade[lun_cod]; int save=0; do{ cgpg=0; contaps=0; tur=0; do{ //system("cls"); printf ("\nTentativo - %d/%d\n\n",tur+1,tentativi); //viene mostrato a video il numero dei tentativi correnti //e quelli rimanenti. printf("%s Tocca a te. Inserisci il codice da indovinare\n\n",players[gc].nick); //viene mostrato a video chi sarà il decodificatore for(j=0;j<lun_cod;j++){ do{ printf("Inserisci elemento [0 - %d] in posizione %d: ",elem_cod-1,j+1); scanf("%d",&dec[j]); //riempie il vettore "dec" con gli elementi scelti dall'utente } while (dec[j]<0 || dec[j]>elem_cod-1);} //controlla se i valori inseriti nel vettore "dec" sono accettabili. printf ("\nIl codice di decodifica e': "); for (i=0;i<lun_cod;i++){ printf ("%5d",dec[i]);} printf ("\n\n"); system ("PAUSE"); //system ("CLS"); for (i=0;i<lun_cod;i++){ c=cod[i]; //viene assegnato alla variabile temporane "c" il contenuto del vettore "cod" nella posizione "i" aco[i]=c; //si riempie il vettore "aco" con il contenuto della variabile "c". //Quindi viene effettuata una copia del vettore "cod" d=dec[i]; //viene assegnato alla variabile temporane "d" il contenuto del vettore "dec" nella posizione "i" ade[i]=d;} //si riempie il vettore "ade" con il contenuto della variabile "d". //Quindi viene effettuata una copia del vettore "dec" for (i=0;i<lun_cod;i++) for (j=0;j<lun_cod;j++){ if (cod[i]==dec[j] && i==j){ //vegono controllati gli elementi dei 2 vettori "cod" e "dec" e i loro indici. cgpg=cgpg+1;; //se entambi sono uguali, si incrementa la variabile "cgpg (codice giusto posto giusto)" aco[i]=10; ade[j]=13;} else {} } for (i=0;i<lun_cod;i++) for (j=0;j<lun_cod;j++){ if (aco[i]==ade[j] && i!=j){ contaps=contaps+1;; ade[j]=11; aco[i]=12;} else {} } printf ("\n\t\t\tTabella Risultato\n\n\n"); printf ("\nCodice Segreto del Codificatore:"); for(i=0;i<lun_cod;i++){ printf("\t*");} printf("\n\nCodice del Decodificatore: \t "); for (i=0;i<lun_cod;i++){ printf("%8d",dec[i]);} printf ("\n\n[%d] cifre giuste al posto giusto !!\n",cgpg); printf ("\n[%d] cifre giuste al posto sbagliato !!\n\n",contaps); if (cgpg==lun_cod){ system("cls"); printf ("\n\n%s Congratulazioni!!!\n\n",players[gc].nick); players[gc].tentativo=tur+1; giocatoriclass[gv].tentativo=players[gc].tentativo; strcpy(giocatoriclass[gv].nick,players[gc].nick); gv=gv+1; *pass=gv; printf ("Hai indovinato il codice segreto in %d tentativi.\n\n", tur+1); printf ("\n\n\t\t\t~~~ HAI VINTO !! ~~~\n\n"); tur=tentativi;} else { tur=tur+1; cgpg=0; contaps=0; system ("PAUSE"); //system ("CLS"); } }while (tur<tentativi); if (cgpg<lun_cod){ system("cls"); printf ("\n\nIl codificatore ha vinto la partita !!!\n\n"); printf ("\n\n%s Congratulazioni!!!\n\n",codificatore.nick);} gc=gc+1; if(gc<num_gio-1){ printf("Vuoi Salvare la Partita Corrente? 1.Si - 2.No: "); scanf("%d",&save); if(save==1){ salva (cod,dec,lun_cod,tentativi,elem_cod,num_gio,players,codificatore, giocatoriclass,gv,gc); //viene chiamata la funzione salva printf("\nLa Partita e stata Salvata con Successo!!!\n"); } system("pause"); } }while(gc<num_gio-1); printf ("\n\nLa partita e terminata!!!\n\n"); printf ("\n\nIl Codice Segreto era:\t"); for (i=0;i<lun_cod;i++){ printf("%8d",cod[i]);} printf("\n\n"); system("pause"); system("cls"); printf("FINE PARTITA\n"); }
int main(void) { int gdriver = DETECT, gmode,lin=40,col=16,sta,stant,ml1[16],ml2[16],mc1[16],mc2[16]; for(j=0;j<16;j++) for(i=0;i<16;i++) mt[j] [i]=0; i=0;j=0; initgraph(&gdriver, &gmode, "c:\\bc\\bgi"); for(lin=40;lin<=440;lin=lin+25,i++){ line(120,lin,520,lin); if(lin<440){ ml1[i]=lin; if(i>0) ml2[i-1]=ml1[i];}} ml2[15]=440; i=0; for(col=120;col<=520;col=col+25,i++){ line(col,40,col,440); if(col<520){ mc1[i]=col; if(i>0) mc2[i-1]=mc1[i];}} mc2[15]=520; mouse(); while(!(kbhit())){ stant=sta; lin=(linmouse()*8); col=(colmouse()*8); sta=status(); if(lin>40 && lin<440){ for(i=0;lin>ml1[i] ^ lin<ml2[i];i++);} if(col>120 && col<520 && col!=320){ for(j=0;col>mc1[j] ^ col<mc2[j];j++);} if(lin>=ml1[i] && lin<=ml2[i] && col>=mc1[j] && col<=mc2[j] ){ if(stant==0 && sta==1){ desliga(); bar(mc1[j]+2,ml1[i]+2,mc2[j]-2,ml2[i]-2); /*if(mt[j][i]==0) botao(mc1[j]+4,ml1[i]+4,mc2[j]-3,ml2[i]-4,0); else botao(mc1[j]+4,ml1[i]+4,mc2[j]-3,ml2[i]-4,1);*/ mouse(); mt[j][i]=1;} else if(stant==0 && sta==2){ setfillstyle( SOLID_FILL,0); desliga(); bar(mc1[j]+2,ml1[i]+2,mc2[j]-2,ml2[i]-2); mouse(); mt[j][i]=0; setfillstyle( SOLID_FILL,15);}} } desliga(); cleardevice(); salva(); cleardevice(); sta=0; flushall(); while(!(kbhit())){ mudamouse(_DS,(unsigned) seta.imag,7,7); mouse();} closegraph(); return 0; }