Au sujet de la fonction random

Résolu
cs_saadox Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 6 juin 2011 - 4 janv. 2010 à 22:12
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.

12 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 janv. 2010 à 14:43
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))
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 janv. 2010 à 22:27
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]
0
cs_saadox Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 6 juin 2011
4 janv. 2010 à 22:35
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.
0
cs_saadox Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 6 juin 2011
5 janv. 2010 à 13:57
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.
0

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

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 janv. 2010 à 14:12
montre où tu en es, ton code

comment sont chargés tes mots etc...
qu'on ne parte pas de zéro
0
cs_saadox Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 6 juin 2011
5 janv. 2010 à 14:24
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.
0
cs_saadox Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 6 juin 2011
5 janv. 2010 à 15:04
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.
0
cs_saadox Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 6 juin 2011
5 janv. 2010 à 15:05
correction :
J'etais mort de rire en lisant...*

Developper c'est créer une nouvelle vie, Celle qu'on trouve parfaite...Saad.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 janv. 2010 à 15:34
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
0
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:01
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.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 janv. 2010 à 16:13
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

++
0
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
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.
0
Rejoignez-nous