Nombre aléatoire différent

Résolu
Guillamue06 Messages postés 157 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 11 juillet 2022 - 1 déc. 2010 à 22:37
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 4 déc. 2010 à 01:30
Bonsoir, je fait un jeu de mémoire et je doit placer aléatoirement 16 image dans des picturebox.

Je doit donc générer 16 nombres aléatoires entre 1 et 16 mais il faudrait qu'ils soit tous différents les uns des autres.

Mais je ne vois vraiment pas comment puis-je faire.
A voir également:

6 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
1 déc. 2010 à 23:36
Bonjour,

Dim ltSrc as new list(of integer)
dim ltDest as new list(of integer)

ltSrc.addrange(new integer(){1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16})

Do while ltSrc.count>0
    dim lInt as integer=Randomize.Rand(0,ltsrc.count-1)
    ltDest.add(ltSrc(lInt))
    ltSrc.RemoveAt(lint)        
Loop


Et dans ltDest tu as la liste aléatoire.

Renseignes-toi sur Randomize pour plus d'info.

Mon site
3
Guillamue06 Messages postés 157 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 11 juillet 2022 4
1 déc. 2010 à 23:52
Salut !

En faite je connais Randomize voici se que moi j'ai fait :

        Randomize()

        Dim liste(8), continuer, i
        continuer = False

        For i = 1 To 8
            While continuer = False
                nombre = Int(Rnd() * 7)
                liste(i) = nombre

                For a = 1 To i
                    If liste(a) = liste(i) Then
                        continuer = False
                    Else
                        continuer = True
                    End If
                Next
            End While


Mais ma form ne se charge pas. Surement car le nombre aléatoire est jamais le bon...
0
Guillamue06 Messages postés 157 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 11 juillet 2022 4
2 déc. 2010 à 00:07
En faite se qu'il faudrait c'est que je sorte de la boucle for quand continuer est égale à true
0
Guillamue06 Messages postés 157 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 11 juillet 2022 4
2 déc. 2010 à 01:24
Je viens de comprendre ton code et j'avou que je n'aurai jamais panser à créer une liste, de choisir un nombre au hasard de cette liste et enfin de le supprimer pour ne plus l'utiliser.

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fabasia Messages postés 45 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 17 août 2012
2 déc. 2010 à 03:14
Merci Henry, j'avais fait avec des listbox ....


For index = 0 To Ma_DataGridView.RowCount - 1
listbox_tirage.Items.Add(index)
Next
Randomize()
'On fait autant de tirages que de lignes
For index = 0 To Ma_DataGridView.RowCount - 1
'Le nombre tiré est compris entre 0 et nombre
d'items -1 du listbox)
nombre_tire = CInt(Int
((listbox_tirage.Items.Count - 1) * Rnd()))
'On mémorise l'item d'index (nombre tiré)
dans listbox_ordre_aleatoire et on supprime
l'item d'index (nombre tiré) dans
listbox_tirage
listbox_ordre_aleatoire.Items.Add
(listbox_tirage.Items(nombre_tire))
listbox_tirage.Items.RemoveAt(nombre_tire)
Next

Toujours de bons conseils !
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
4 déc. 2010 à 01:30
Bonjour,

Merci pour vos retours :)

Fabasia, bien que je trouve le code pas très lisible (surtout dû à la non coloration syntaxique), c'est déjà un bon code, continue comme ça et tu arriveras beaucoup plus loin.

Mon site
0
Rejoignez-nous