Au sujet de la fonction random [Résolu]

Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
6 juin 2011
- - Dernière réponse : cs_saadox
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
6 juin 2011
- 5 janv. 2010 à 16:47
Bonsoir;
Je voudrai svp avoir de l'aide pour bien manipuler la fonction dite Random,en effet je veux developper mon jeu de pendu ,qu'on puisse jouer contre la machine, ceci dit, je voudrai fournire au programme une liste de mot qu'il choisira par hazard suivant ca liste random.

donc bref je veux savoir comment devrai-je faire pour creer une liste de mots ,comment forcer le programme a choisir chaque fois un nouveau mot qu'il va pas reprendre par la suite jusqu'a ce qu'il ait deja fini tous les mots de la liste !

ce mot choisi devrai aprés passer par une variable de type string donc comment pourrai-je le recuperai et le mettre dedons?

merci infiniment a tous ceux qui m'aidrent sur ce sujet.

Developper c'est créer une nouvelle vie, Celle qu'on trouve parfaite...Saad.
Afficher la suite 

12 réponses

Meilleure réponse
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
26
3
Merci
tu récupères un numéro
sert toi de ce numéro comme l'index de ton tableau non??

TextBox1.Text = t(r.Next(1, 6))

Dire « Merci » 3

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

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de PCPT
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
26
0
Merci
salut,

la question est sur le hazard (random) ? ou le hazard unique?

une fois les mots chargée en liste, tu supprimes le mot utilisé, il ne sera pas re-pioché

sinon le random vb.net permet aussi l'unicité mais il nous faut ton code pour t'orienter

++
[hr]
Commenter la réponse de PCPT
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
pour le code j'y pense tjr mais disons que je veux juste un pti bout de code ou y'a chargement de quelques mots dans une liste et dont le programme choisira hazardement a chaque fois un nouveau nom ce nom va etre affecté par la suite a une variable string avec la quelle je pourrai travailler ou sinon travailler avec le mot directe si y'a moyen ,Pour l'hazard unique je crois que j'ai comprid l'astuce
merci d'avoir repondu.

Developper c'est créer une nouvelle vie, Celle qu'on trouve parfaite...Saad.
Commenter la réponse de cs_saadox
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
donc toujours pas de reponse, je cherche encore sinon, alors si quelqu'un veut bien m'aider ca srait assez gentil :)

Developper c'est créer une nouvelle vie, Celle qu'on trouve parfaite...Saad.
Commenter la réponse de cs_saadox
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
26
0
Merci
montre où tu en es, ton code

comment sont chargés tes mots etc...
qu'on ne parte pas de zéro
Commenter la réponse de PCPT
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
D'accord :

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim t(6) As String
        'la je remplis un tableau de differents mots :
        'je sais pas si c'est la methode ou nn
        'mais c'est ce qui m'est vnu a l'esprit !
        t(1) = "lune"
        t(2) = "voiture"
        t(3) = "cable"
        t(4) = "informatique"
        t(5) = "ordinateur"
        t(6) = "random"
        ' je vide la zone textbox pour qu'il y'ait juste un seul mot a chaque click :
        TextBox1.Clear()
        Dim r As New System.Random
        'normalement la je veux avoir un mot alleatoire qui s'affiche dans 
        'la zone textbox en apuiyant sur le bouton, 
        'et c'est la que je bloc
        TextBox1.Text = r.Next(t(1), t(6))
        'j'ai tiré ce code d'un pti programme qui genere 
        'une liste de nombre entre 0 et 9 
        'voila le code en entier
        'Dim r As New random

        'For i As Integer = 0 To 15
        '    If i 4 Or i 8 Or i = 12 Then
        '        TextBox1.Text &= "-"
        '    End If

        '    TextBox1.Text &= r.Next(0, 9)

        'Next
        'mais comment faire pour qu'a la place des nombre je puisse mettre des mots !
    End Sub
End Class


voila je sais pas comment faire..

Developper c'est créer une nouvelle vie, Celle qu'on trouve parfaite...Saad.
Commenter la réponse de cs_saadox
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
j'etas mort dlisant ta reponse
mais comment j'ai fait pour passer a cté de ca mdr merci bien PCPT ca marche maintenant.

sinon srait il possible de creer une liste de mot directement dans une fonction random sans avoir a passer par un tableau, une liste que la fonction va parcourire quand on lui demandra un mot au hazard.

sinon y'a toujour le probleme du mot qui peut se repeter deux fois de suite, comment devrais-je faire pour eviter cela ?!

Merci pour la reponse :)


Developper c'est créer une nouvelle vie, Celle qu'on trouve parfaite...Saad.
Commenter la réponse de cs_saadox
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
correction :
J'etais mort de rire en lisant...*

Developper c'est créer une nouvelle vie, Celle qu'on trouve parfaite...Saad.
Commenter la réponse de cs_saadox
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
26
0
Merci
sinon y'a toujour le probleme du mot qui peut se repeter deux fois de suite, comment devrais-je faire pour eviter cela

il se répète parce que la portée de ton random est celle du click
il faut déclarer ton tableau hors de la procédure




sinon srait il possible de creer une liste de mot directement dans une fonction random sans avoir a passer par un tableau

non mais pareil tu peux déclarer ton tableau à portée de la form et l'instancier en une seule ligne
... = {"lune", "voiture", "cable", ...}


NB : attention à bien vérifier que le click ne soit pas produit plus de 6 fois dans ton cas
Commenter la réponse de PCPT
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
donc je declare le tableau sur ma Form load comme suit:
t(1,2,3,4..)={"voiture","cable","jardin","merci",..}

mais pour le NB je crois que ca sra pas trop utile car le tableau je vais bien le remplir genre 100 mots ou plus comme ca meme si je traite pas le cas du mot qui se repete deux fois y'aura de faible chance que ca se produit .

merci encore

Developper c'est créer une nouvelle vie, Celle qu'on trouve parfaite...Saad.
Commenter la réponse de cs_saadox
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
26
0
Merci
met le enabled du bouton à false, la chance sera encore plus faible...


le développement c'est aussi "penser à l'impensable", on en loin du compte avec "je code pas, y'a peu de risques" tu crois pas?!!

enfin, fait comme tu le sens, le problème est résolu? si c'est le cas n'oublie pas de valider la ou les bonnes réponses

++
Commenter la réponse de PCPT
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
je gerai ca quand je codrai mon vrai programme le code de taleur etait juste un exp
et merci encore pour l'aide, ca m'a etait d'une grande utilité. :)

Developper c'est créer une nouvelle vie, Celle qu'on trouve parfaite...Saad.
Commenter la réponse de cs_saadox