none
mescola e distribuisci RRS feed

  • Domanda

  • /*Funzione mischia*/ 
    void ricerca_valore(int val,int vett[],int riemp,bool &trovato); 
    void mischia(carta mazzo[]) 
    { 
    srand((unsigned) time(0)); 
    int i,j,k,vett[40]; 
    bool trovato; 
    for(i=0;i<40;i++) 
    { 
    j=rand()%40; 
    ricerca_valore(j,vett,i,trovato); 
    if(!trovato) vett[i]=j; 
    else i--; 
    }//end for 
    k=0; 
    for(i=0;i<10;i++) 
    { 
    mazzo[vett[k]].valore=i+1; 
    strcpy(mazzo[vett[k]].seme,denari); 
    k++; 
    } 
    for(i=10;i<20;i++) 
    { 
    mazzo[vett[k]].valore=i-9; 
    strcpy(mazzo[vett[k]].seme,bastoni); 
    k++; 
    } 
    for(i=20;i<30;i++) 
    { 
    mazzo[vett[k]].valore=i-19; 
    strcpy(mazzo[vett[k]].seme,spade); 
    k++; 
    } 
    for(i=30;i<40;i++) 
    { 
    mazzo[vett[k]].valore=i-29; 
    strcpy(mazzo[vett[k]].seme,coppe); 
    k++; 
    } 
    }//end mischia 
    
    /*Funzione ricerca valore*/ 
    void ricerca_valore(int val,int vett[],int riemp,bool &trovato) 
    { 
    int i; 
    trovato=false; i=0; 
    while(i<riemp&&!trovato) 
    { 
    trovato=(vett[i]==val); 
    i++; 
    }//end while 
    }//end ricerca valore 
    
    Ciao a tutti, volevo chiedervi una mano , come posso rendere più semplice questa funzione per poter eliminare la funzione ricerca valore?? ...
    venerdì 7 febbraio 2014 21:53

Risposte

  • Per mischiare usa l'algoritmo di Knuth (Fisher-Yates)

    http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle

    Esempio:

    http://www.geeksforgeeks.org/shuffle-a-given-array/

    • Proposto come risposta Irina Turcu mercoledì 12 febbraio 2014 14:02
    • Contrassegnato come risposta Irina Turcu giovedì 20 febbraio 2014 16:18
    sabato 8 febbraio 2014 09:25