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

Guillamue06 150 Messages postés dimanche 18 avril 2004Date d'inscription 31 mars 2018 Dernière intervention - 1 déc. 2010 à 22:37 - Dernière réponse : NHenry 14181 Messages postés vendredi 14 mars 2003Date d'inscription 24 mai 2018 Dernière intervention
- 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

NHenry 14181 Messages postés vendredi 14 mars 2003Date d'inscription 24 mai 2018 Dernière intervention - 1 déc. 2010 à 23:36
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
Guillamue06 150 Messages postés dimanche 18 avril 2004Date d'inscription 31 mars 2018 Dernière intervention - 1 déc. 2010 à 23:52
0
Utile
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
Guillamue06 150 Messages postés dimanche 18 avril 2004Date d'inscription 31 mars 2018 Dernière intervention - 2 déc. 2010 à 00:07
0
Utile
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
Guillamue06 150 Messages postés dimanche 18 avril 2004Date d'inscription 31 mars 2018 Dernière intervention - 2 déc. 2010 à 01:24
0
Utile
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
Fabasia 45 Messages postés mercredi 26 mars 2008Date d'inscription 17 août 2012 Dernière intervention - 2 déc. 2010 à 03:14
0
Utile
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
NHenry 14181 Messages postés vendredi 14 mars 2003Date d'inscription 24 mai 2018 Dernière intervention - 4 déc. 2010 à 01:30
0
Utile
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.