- mescola l'array di partenza
- ordina l'array di partenza
Creo una funzione per stampare sulla finestra immediata gli array.
Sub mostra(ByVal arr As ArrayList) For n = 0 To arr.Count - 1 Debug.Print(arr(n).nome & " " & arr(n).turni) Next Debug.WriteLine("") End SubEcco, quindi adesso provo con le mie due procedure di rimescolamento e ordinamento.
'Rimescolamento casuale della matrice di partenza Dim r As New Random Dim x As Integer Dim temp As persona For n = 0 To matrice.Count - 1 x = r.Next(matrice.Count - n) + n temp = matrice(n) matrice(n) = matrice(x) matrice(x) = temp Next 'ordinamento della matrice matrice.Sort() mostra(matrice)Avendo tutti e tre gli elementi la stessa preferenza, di 50, il risultato dovrebbe essere assolutamente casuale.
Mario 0 Giuseppe 0 Luigi 0 Luigi 0 Mario 0 Giuseppe 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Mario 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Luigi 0 Giuseppe 0 Giuseppe 0 Mario 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Luigi 0 Mario 0 Giuseppe 0 Mario 0 Luigi 0 Giuseppe 0 Giuseppe 0 Mario 0 Luigi 0 Giuseppe 0 Mario 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Giuseppe 0 Luigi 0 Mario 0 Luigi 0 Mario 0 Giuseppe 0 Mario 0 Giuseppe 0 Luigi 0 Giuseppe 0 Mario 0 Luigi 0 Giuseppe 0 Mario 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Giuseppe 0 Luigi 0 Mario 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Luigi 0 Giuseppe 0 Luigi 0 Giuseppe 0 Mario 0credo che non ci sia nessuna sequenza preferenziale...
Adesso impostiamo una differenza di preferenze, dando a Mario una preferenza di 20. Come risultato, la disposizione casuale dovrebbe applicarsi solo a Giuseppe e Luigi, mentre Mario dovrebbe venire sempre per primo...
Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Luigi 0 Giuseppe 0 Mario 0 Luigi 0 Giuseppe 0 Mario 0 Luigi 0 Giuseppe 0 Mario 0 Luigi 0 Giuseppe 0 Mario 0 Luigi 0 Giuseppe 0 Mario 0 Luigi 0 Giuseppe 0 Mario 0 Luigi 0 Giuseppe 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0Sembra funzionare...
Adesso diamo anche a Luigi una preferenza di 20, prevedendo che debba risultare un ordinamento casuale di Mario e Luigi, con Giuseppe sempre per ultimo...
Mario 0 Luigi 0 Giuseppe 0 Mario 0 Luigi 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Mario 0 Luigi 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Luigi 0 Mario 0 Giuseppe 0 Mario 0 Luigi 0 Giuseppe 0Sì... fin qui sembra che ci siamo...