Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Influenzare Shuffle

  1. #1

    Influenzare Shuffle

    Salve raga. Ho una domanda da porvi. E' possibile influenzare lo shuffle? Cioè vorrei sempre ordinare un array casualmente, però vorrei che questa casualità tendesse a ordinare per i primi
    QUASI sempre i soliti dati.

    Ad es: io qui ho un array di cavalli 1-2-3-4-5-6-7-8. Mettiamo che il cavallo 1-5-8 sono più forti
    degli altri. Quindi vorrei che lo shuffle ordinasse SPESSO questi tre prima degli altri. Ovviamente può anche capitare che ci siano altri cavalli davanti, deve essere solo una tendenza.

    Codice PHP:

    $cavalli 
    = array('1''2''3''4''5''6''7''8');
    shuffle($cavalli); 
    grazie dell'attenzione.

    ciau
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Potresti farti una funzioncina con uno shuffle ponderato.
    Ad esempio estrai un numero casuale compreso tra 1 e 10.
    Nel caso in cui il numero sia compreso tra 1 e 3 ordinerai l'array come 1-5-8, nel caso in cui il numero estratto sia maggiore di 3 farai un ordinamento con lo shuffle.
    In questo modo la possibilità che l'ordinamento sia 1-5-8 sarà del 30%. Il peso da attribuire all'evento lo decidi tu.

  3. #3
    ok. Ma nel caso del < 3, come ordino l'array con quei primi 3 cavalli ai primi tre posti in modo casuale, ed i restanti sempre in modo casuale?
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da Manuelandro
    ok. Ma nel caso del < 3, come ordino l'array con quei primi 3 cavalli ai primi tre posti in modo casuale, ed i restanti sempre in modo casuale?
    Devi lavorare un attimo sulle funzioni degli array.
    Hai il tuo array di 8 elementi, fai uno shuffle di 1-5-8, fai un array_diff tra i due array(quello 1-5-8 e quello di tutti gli altri e ti ricavi un array con tutti gli altri numeri esclusi quei 3, mischi quest'ultimo array e poi con array_merge li concateni.

  5. #5
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Codice PHP:
    $preferiti = array(1,2,3);
            
    $tutti = array(1,2,3,4,5,6,7,8,9,10);
            
    $random array_diff($tutti$preferiti);
            
    shuffle($random);
            
    shuffle($preferiti);
            
    $finale array_merge_recursive($preferiti,$random);
                    
    print_r($finale); 
    Cosi' mette i 3 preferiti in testa e gli altri in coda mescolando entrambi gli array

  6. #6
    così?

    Codice PHP:
    function ordina() {


    $percentuale rand(1,10);

    if(
    $percentuale <= '3') {    

    $cavalli1 = array('1''5''8');
    shuffle($cavalli1);

    $cavalli = array('1''2''3''4''5''6''7');


    $cavalli2 array_diff($cavalli$cavalli1);
    shuffle($cavalli2);

    $risultato array_merge($cavalli1$cavalli2);

    }

    else

    $cavalli = array('1''2''3''4''5''6''7''8'); shuffle($cavalli);   }



    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  7. #7
    funziona benissimo grazie infinte!
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.