Nombre aléatoire différent [Résolu]

Signaler
Messages postés
157
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
25 juillet 2018
-
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
-
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.

6 réponses

Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
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
Messages postés
157
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
25 juillet 2018
4
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...
Messages postés
157
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
25 juillet 2018
4
En faite se qu'il faudrait c'est que je sorte de la boucle for quand continuer est égale à true
Messages postés
157
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
25 juillet 2018
4
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.
Messages postés
45
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
17 août 2012

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 !
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
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