Se fate qualche prova vi renderete conto che non sempre funziona a dovere, questo perchè "ptrebbe essere troppo veloce" o "troppo breve la latenza" fra una generazione e l'altra.
Osservate questo codice che cosa genera.

Qualcosa non convince...

Gli elementi evidenziati sono uguali e questo appare discretamente rischioso.
Mi sono accorto di questo problema utilizzando xna, nella creazione di uno screen saver mi sono accorto che tutti gli elementi generati a caso avevano le stesse coordinate.
I più saccenti potrebbero suggerire lo spostamento di Random r = new Random() all'interno del for e utilizare come seed, o l'indice del for o qualche altro strano valore...
Ma se osservate bene il codice... quelli generati per la terza colonna provengono da un nuova variabile "b"...
E' questo quello che secondo me è grave..

Perchè è questo che si verifica se le metto nel for...
Quindi Random .. random .. proprio no direi !!
1 commento:
Potresti utilizzare un unica istanza della classe Random per tutti i cicli, otterresti migliori performance e maggiore casualità (anche se di casuale c'è solo il tempo in cui viene istanziato Random la prima volta)
Posta un commento