Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- /*Simulazione del torneo di calcetto*/
- struct _giocatore
- {
- char cognome[6];
- char nome[6];
- int valore;
- int campo;
- };
- typedef struct _giocatore Giocatore;
- struct _squadra
- {
- int player[11];
- int valore;
- int numero;
- int numvittoriesquadra;
- };
- typedef struct _squadra Squadra;
- void visualizza_aI (Squadra *s, int n)
- {
- int i;
- for (i=7;i>=0;i--)
- printf("squadra: n =%d vittorie = %d \n", (s+i)->numero, (s+i)->numvittoriesquadra);
- }
- /*Function di ordinamento*/
- void order_ins (Squadra *s, int n)
- {
- int i,j;
- int el_da_ins;
- int oldNum;
- int appog;
- for (i=1;i<n;i++)
- {
- el_da_ins=(s+i)->numvittoriesquadra;
- oldNum= (s + i)->numero;
- j= i-1;
- while (j>=0 && el_da_ins < (s+j)->numvittoriesquadra)
- {
- (s+j+1)->numvittoriesquadra = (s+j)->numvittoriesquadra;
- (s+j+1)->numero = (s+j)->numero;
- j--;
- }
- (s+j+1)->numvittoriesquadra = el_da_ins;
- (s + j + 1)->numero = oldNum;
- }
- }
- int main()
- {
- srand(time(NULL));
- Giocatore array_giocatori[88];
- Squadra array_squadra[8];
- char alfabeto[]={'a','b','c','d','e','f'};
- char *nomesquadra[8]={"0ZERO","1UNO","2DUE","3TRE","4QUATTRO","5CINQUE","6SEI","7SETTE"};
- int lung_alfabeto=6;
- int i,j,k,q,z,w,u,t,r,s;
- int dimensione=8;
- int indice;
- int n=88;
- int nc,num;
- int numerocasuale=0;
- int contatore=0;
- int risultato0,risultato1;
- int valoresquadra[8];
- int numvittoriesquadra[8]={0};
- int lung_numvittorie=8;
- int vartemp=0;
- int temp=0;
- char stringacas[6]="abcde";
- /* assegnazione nomi (lettere casuali ai giocatori ) */
- for (i=0;i<88;i++)
- {
- array_giocatori[i].valore=rand()%11;
- for (j=0;j<6;j++)
- {
- nc= rand()%lung_alfabeto;
- stringacas[j]=alfabeto[nc];
- array_giocatori[i].nome[j] = stringacas[j];
- }
- }
- for (q=0;q<8;q++)
- {
- for (u=0;u<11;u++)
- {
- num=rand()%88;
- array_squadra[q].player[u]= num;
- }
- }
- /* determino i valori delle squadre */
- for (t=0;t<8;t++)
- {
- array_squadra[t].valore=0;
- }
- for (w=0;w<8;w++)
- {
- for (r=0;r<11;r++)
- {
- array_squadra[w].valore += array_giocatori[array_squadra[w].player[r]].valore;
- }
- }
- numerocasuale=rand()%2;
- printf("Inizio Simulazione torneo: Le 8 Squadre, formate da 11 giocatori si scontrano (eliminazione diretta) per determinare la vincitrice \n ");
- printf("\n");
- /* Inserisco gli indici delle squadre nel array squadra */
- for (i=0;i<8;i++)
- {
- array_squadra[i].numero=temp;
- temp++;
- }
- /* alogritmo per lo scontro delle squadre , le squadre vincenti si sfidano fino a determinare un solo vincitore */
- while (dimensione != 1) {
- for ( i = 0; i < dimensione; i += 2) {
- Squadra s1 = array_squadra[i + 0];
- Squadra s2 = array_squadra[i + 1];
- if ((s1.valore * rand()%2 ) > (s2.valore* rand()%2))
- {
- numvittoriesquadra[s1.numero]+=1 ;
- printf("valori squadre prima di giocare %s = %d e %s = %d \n",nomesquadra[array_squadra[i].numero],s1.valore ,nomesquadra[array_squadra[i+1].numero] , s2.valore);
- printf("ha vinto la squadra %s \n", nomesquadra[array_squadra[i].numero] );
- printf(" \n");
- array_squadra[i/2]=array_squadra[i];
- }
- else
- {
- numvittoriesquadra[s2.numero]++ ;
- printf("valori squadre prima di giocare %s = %d e %s = %d \n",nomesquadra[array_squadra[i].numero],s1.valore ,nomesquadra[array_squadra[i+1].numero] , s2.valore);
- printf("ha vinto la squadra %s \n", nomesquadra[array_squadra[i+1].numero]);
- printf(" \n");
- array_squadra[i/2]=array_squadra[i+1];
- }
- }
- dimensione = (dimensione / 2);
- }
- for(i = 0; i <8; i++)
- { array_squadra[i].numvittoriesquadra = numvittoriesquadra[i];}
- for (i=0;i<8;i++)
- {
- array_squadra[i].numero=vartemp;
- vartemp++;
- }
- printf("num vittorie squadre non ordinato \n");
- printf(" \n");
- /* chiamata alla function ordinamento (ordino le vittorie in ordine crescente) passando come paramentro un tipo strutturato
- affinchè possa ordinare anche il nome relativo alla squadra */
- visualizza_aI(array_squadra,lung_numvittorie);
- order_ins(array_squadra,lung_numvittorie);
- printf("Squadre In ordine decrescente di vittoria \n");
- printf(" \n");
- visualizza_aI(array_squadra,lung_numvittorie);
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment