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

Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Dernière intervention
25 juillet 2018
- - Dernière réponse : NHenry
Messages postés
14321
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
13 décembre 2018
- 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.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
14321
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
13 décembre 2018
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de NHenry
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Dernière intervention
25 juillet 2018
0
Merci
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...
Commenter la réponse de Guillamue06
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Dernière intervention
25 juillet 2018
0
Merci
En faite se qu'il faudrait c'est que je sorte de la boucle for quand continuer est égale à true
Commenter la réponse de Guillamue06
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Dernière intervention
25 juillet 2018
0
Merci
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.
Commenter la réponse de Guillamue06
Messages postés
45
Date d'inscription
mercredi 26 mars 2008
Dernière intervention
17 août 2012
0
Merci
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 !
Commenter la réponse de Fabasia
Messages postés
14321
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
13 décembre 2018
0
Merci
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
Commenter la réponse de NHenry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.