Guest User

POGETTO

a guest
Feb 25th, 2014
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.71 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. /*Simulazione del torneo di calcetto*/
  5. struct _giocatore
  6. {
  7. char cognome[6];
  8. char nome[6];
  9. int valore;
  10. int campo;
  11. };
  12. typedef struct _giocatore Giocatore;
  13. struct _squadra
  14. {
  15.    int player[11];
  16.    int valore;
  17.    int numero;
  18.    int numvittoriesquadra;
  19.    
  20.        };
  21.        typedef struct _squadra Squadra;
  22.     void visualizza_aI (Squadra *s, int n)
  23. {
  24.      int i;
  25.      for (i=7;i>=0;i--)
  26.      printf("squadra: n =%d vittorie = %d \n", (s+i)->numero, (s+i)->numvittoriesquadra);
  27.      }
  28.         /*Function di ordinamento*/
  29.         void order_ins (Squadra *s, int n)
  30. {
  31.      int i,j;
  32.      int el_da_ins;
  33.      int oldNum;
  34.    
  35.      int appog;
  36.      for (i=1;i<n;i++)
  37.      {
  38.          el_da_ins=(s+i)->numvittoriesquadra;
  39.          oldNum= (s + i)->numero;
  40.          j= i-1;
  41.      
  42.      while (j>=0 && el_da_ins < (s+j)->numvittoriesquadra)
  43.      {
  44.            (s+j+1)->numvittoriesquadra = (s+j)->numvittoriesquadra;
  45.            (s+j+1)->numero = (s+j)->numero;
  46.            
  47.            j--;
  48.            }
  49.            (s+j+1)->numvittoriesquadra = el_da_ins;
  50.            (s + j + 1)->numero = oldNum;
  51.            }
  52. }
  53. int main()
  54. {
  55.      srand(time(NULL));
  56.     Giocatore array_giocatori[88];    
  57.     Squadra array_squadra[8];
  58.     char alfabeto[]={'a','b','c','d','e','f'};
  59.     char *nomesquadra[8]={"0ZERO","1UNO","2DUE","3TRE","4QUATTRO","5CINQUE","6SEI","7SETTE"};
  60.     int lung_alfabeto=6;
  61.     int i,j,k,q,z,w,u,t,r,s;
  62.     int dimensione=8;    
  63.     int indice;
  64.     int n=88;
  65.     int nc,num;
  66.     int numerocasuale=0;
  67.     int contatore=0;
  68.     int risultato0,risultato1;
  69.     int valoresquadra[8];
  70.     int numvittoriesquadra[8]={0};
  71.     int lung_numvittorie=8;
  72.     int vartemp=0;
  73.     int temp=0;
  74.  
  75.     char stringacas[6]="abcde";
  76.      /* assegnazione nomi (lettere casuali ai giocatori ) */
  77.         for (i=0;i<88;i++)
  78.     {
  79.     array_giocatori[i].valore=rand()%11;
  80.   for (j=0;j<6;j++)
  81.     {
  82.            nc= rand()%lung_alfabeto;
  83.            stringacas[j]=alfabeto[nc];
  84.            array_giocatori[i].nome[j] = stringacas[j];
  85.                       }
  86.            }
  87.          
  88.          
  89.       for (q=0;q<8;q++)
  90.       {
  91.        
  92.           for (u=0;u<11;u++)
  93.           {
  94.           num=rand()%88;
  95.                     array_squadra[q].player[u]= num;
  96.                     }
  97.                     }
  98.                      
  99.                                        
  100.  /* determino i valori delle squadre */        
  101. for (t=0;t<8;t++)
  102. {
  103.     array_squadra[t].valore=0;
  104. }
  105. for (w=0;w<8;w++)
  106. {
  107.     for (r=0;r<11;r++)
  108.     {
  109.     array_squadra[w].valore += array_giocatori[array_squadra[w].player[r]].valore;
  110. }
  111. }
  112. numerocasuale=rand()%2;
  113. printf("Inizio Simulazione torneo: Le 8 Squadre, formate da 11 giocatori si scontrano (eliminazione diretta) per determinare la vincitrice \n ");
  114. printf("\n");
  115. /* Inserisco gli indici delle squadre nel array squadra */
  116. for (i=0;i<8;i++)
  117. {
  118. array_squadra[i].numero=temp;
  119. temp++;
  120. }
  121. /* alogritmo per lo scontro delle squadre , le squadre vincenti si sfidano fino a determinare un solo vincitore */
  122. while (dimensione != 1) {
  123.         for ( i = 0; i < dimensione; i += 2) {
  124.            
  125.                    
  126.             Squadra s1 = array_squadra[i + 0];
  127.             Squadra s2 = array_squadra[i + 1];
  128.      
  129.  if ((s1.valore * rand()%2 ) > (s2.valore* rand()%2))
  130. {
  131. numvittoriesquadra[s1.numero]+=1 ;
  132.  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);
  133.  printf("ha vinto la squadra %s \n", nomesquadra[array_squadra[i].numero] );
  134.  printf(" \n");
  135.  array_squadra[i/2]=array_squadra[i];
  136. }
  137. else
  138. {
  139. numvittoriesquadra[s2.numero]++ ;
  140. 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);
  141. printf("ha vinto la squadra %s \n", nomesquadra[array_squadra[i+1].numero]);
  142. printf(" \n");
  143. array_squadra[i/2]=array_squadra[i+1];
  144. }
  145. }
  146. dimensione  = (dimensione / 2);
  147. }
  148. for(i = 0; i <8; i++)
  149.  { array_squadra[i].numvittoriesquadra = numvittoriesquadra[i];}
  150. for (i=0;i<8;i++)
  151. {
  152. array_squadra[i].numero=vartemp;
  153. vartemp++;
  154. }
  155. printf("num vittorie squadre non ordinato \n");
  156. printf(" \n");
  157. /* chiamata alla function ordinamento (ordino le vittorie in ordine crescente) passando come paramentro un tipo strutturato
  158. affinchè possa ordinare anche il nome relativo alla squadra */
  159. visualizza_aI(array_squadra,lung_numvittorie);
  160. order_ins(array_squadra,lung_numvittorie);
  161. printf("Squadre In ordine decrescente di vittoria \n");
  162. printf(" \n");
  163. visualizza_aI(array_squadra,lung_numvittorie);
  164.    
  165.   system("PAUSE"); 
  166.   return 0;
  167. }
Advertisement
Add Comment
Please, Sign In to add comment