Artkabis

Salut !!!
Si vous êtes membre du forum, vous pouvez vous connecter.
Au cas contraire vous avez la possibilité de créer gratuitement un compte...

Forum d'entraide en graphisme et webdesign. Formation pour Flash, Photoshop et les langages: as2, as3, html, php, javascript, etc.


    Math random avec liste de nombres

    Partagez

    artkabis
    Fondateur
    Fondateur

    Messages : : 4545
    Age : : 32
    Logiciels : Logiciels : : Photoshop CS4, Flash CS4, Indesign CS4, After Effects CS4, Illustrator CS4, Premier Pro CS4, Encore CS4, Flexbuilder 3, Papervision 3D, Camtasia, Captivate, InDesign, Swift 3d, Illustrator, Dreamweaver CS3, Blender, Swift 3D, WampServer.
    Date d'inscription : 11/09/2008

    Capacités en graphisme
    Capacité graph:
    9/10  (9/10)

    Math random avec liste de nombres

    Message par artkabis le Lun 29 Déc - 7:57

    Bonjour à tous, il y a quelque temps, je devais créer un petit jeu pour un client et il ma fallut trouver une solution pour créer une fonction qui me permettrait d'avoir un nombre aléatoire pioché dans des nombres bien précis. Je peux vous dire que ce ne fut pas une mince affaire.

    Donc pour ceux qui comme moi voudraient utiliser un nombre aléatoire piochés dans une liste de nombres prédéfinit, voici une solution qui fonctionne plutôt bien.

    Pour vous donner un exemple précis, voici une petite application qui permet de choisir un nombre aléatoirement parmi une liste prédéfinit






    Pour mieux comprendre ce code, commençons par détailler sa structure:

    Code:

    stop();
    var listNb:Array = [20,6,13,30,9,25,15];
    var nbList:Number = Math.floor(Math.random()*7);
    trace ("nbList::::"+nbList + "\n"+"listNb::::"+listNb+"["+nbList+"]"+"==="+listNb[nbList]);

    function done(){
        gotoAndPlay(listNb[nbList]);
        stop();
    };
    setTimeout(done,20);

    Voyons tout d'abord la partie qui nous intéresse le plus, l'array:

    Dans cette ligne:

    Code:
    var listNb:Array = [20,6,13,30,9,25,15];


    Nous créons tout simplement une liste de nombre (ici on peut en compter 7), pour résumer notre variable listNb contiendra les nombre qui seront tirés aléatoirement.

    En regardant de plus près de la seconde ligne:
    Code:
    var nbList:Number = Math.floor(Math.random()*7);

    Nous pouvons nous rendre compte que la variable nbList sera compris entre 0 et 6. L'utilisation du Math.floor nous permet tout simplement d'arrondir le nombre à l'entier.

    Etudions la fonction done:
    Code:
    function done(){
        gotoAndPlay(listNb[nbList]);
        stop();
    };

    Cette fonction nous permet tout simplement de nous déplacer sur la time line (gotoAndPlay) en fonction du nombre choisie dans la liste.

    Pour résumer nous avons listNb qui contient 7 nombres et nbList qui permet de choisir l'un de ces 7 nombres.

    Explication:
    valeurs corespondante:
    .:nbList:. .:listNb:.
    0 20
    1 6
    2 13
    3 30
    4 9
    5 25
    6 30

    Ce tableau nous permet de mieux comprendre le fonctionnement du tirage aléatoire. Un nombre entre 0 et 6 est choisie aléatoirement et celui-ci est lui-même relié à son nombre correspondant, ex: le nombre 0 affichera 20.

    Pour notre dernière portion de code:
    Code:
    setTimeout(done,20);

    La fonction done et joué toutes les 20 millisecondes.

    Grace à cette portion de code vous pouvez maintenant utiliser la fonction random pour un mini jeux de carte par exemple, bien entendu les possibilités sont pratiquement illimitées, donc à vous de jouer Wink

    rahjuliano
    Ceinture blanche
    Ceinture blanche

    Messages : : 80
    Age : : 34
    Logiciels : Logiciels : : Quelles logiciel utilisez vous? Photoshop CS4, illustrator CS4, flash CS4, Dreamweaver CS4, mais aussi Accessoirement Encore CS4, Première CS4, indesign CS4, Bridge CS4, blender :p
    Date d'inscription : 21/01/2009

    Re: Math random avec liste de nombres

    Message par rahjuliano le Dim 1 Fév - 20:24

    je ne comprends pas ton bout de code là, où tu dois avoir un résultat entre 0 et 6 !

    var nbList:Number = Math.floor(Math.random()*7);

    artkabis
    Fondateur
    Fondateur

    Messages : : 4545
    Age : : 32
    Logiciels : Logiciels : : Photoshop CS4, Flash CS4, Indesign CS4, After Effects CS4, Illustrator CS4, Premier Pro CS4, Encore CS4, Flexbuilder 3, Papervision 3D, Camtasia, Captivate, InDesign, Swift 3d, Illustrator, Dreamweaver CS3, Blender, Swift 3D, WampServer.
    Date d'inscription : 11/09/2008

    Capacités en graphisme
    Capacité graph:
    9/10  (9/10)

    Re: Math random avec liste de nombres

    Message par artkabis le Lun 2 Fév - 10:19

    Et bien je créais une variable nbList qui donnera une valeur comprise entre 0 et 6, donc ce qui nous donne 7 nombres, non ?

    Après, j'utilise cette variable avec ma liste de nombres si tu regardes:
    Code:
    var listNb:Array = [20,6,13,30,9,25,15];


    on s'aperçoit que nous avons là aussi 7 nombres, donc pour résumer, la variable nbList va nous sortir un nombre contenu dans la variable listNb

    Dans mon exemple on voit très bien comment est choisi ce nombre.

    Si par exemple nbList nous sort 0, alors le nombre 20 sera choisi, si nbList sort un 6, alors c'est le 15 qui sera choisi, pourtant tout est bien expliqué, je ne comprends pas ce que toi tu ne comprends pas, car il n'y a pas de difficultés majeures dans ce petit bout de code , regarde le tableau, je pense que ceci t'aidera à mieux comprendre la chose


    _________________
    J'me fais de la pub et na tongue

    rahjuliano
    Ceinture blanche
    Ceinture blanche

    Messages : : 80
    Age : : 34
    Logiciels : Logiciels : : Quelles logiciel utilisez vous? Photoshop CS4, illustrator CS4, flash CS4, Dreamweaver CS4, mais aussi Accessoirement Encore CS4, Première CS4, indesign CS4, Bridge CS4, blender :p
    Date d'inscription : 21/01/2009

    Re: Math random avec liste de nombres

    Message par rahjuliano le Lun 2 Fév - 10:36

    ce que je ne comprends pas en fait c'est comment tu peux trouver un chiffre entre 0 et 6 avec "Math.floor(Math.random()*7)"
    Peut etre qu'il faut que tu m'expliques à quoi correspond finalement le "*7" ? puis aussi cette combinaison de "math.floor" avec "Math.random" ?
    random veut bien dire qu'il prend un chiffre au hasard entre 0 et 1 ? donc 0, 0.1, 0.2, 0.3, .... 0.9, 1 !

    Sinon j'ai très bien compris le reste je pense tongue

    artkabis
    Fondateur
    Fondateur

    Messages : : 4545
    Age : : 32
    Logiciels : Logiciels : : Photoshop CS4, Flash CS4, Indesign CS4, After Effects CS4, Illustrator CS4, Premier Pro CS4, Encore CS4, Flexbuilder 3, Papervision 3D, Camtasia, Captivate, InDesign, Swift 3d, Illustrator, Dreamweaver CS3, Blender, Swift 3D, WampServer.
    Date d'inscription : 11/09/2008

    Capacités en graphisme
    Capacité graph:
    9/10  (9/10)

    Re: Math random avec liste de nombres

    Message par artkabis le Lun 2 Fév - 11:11

    Code:
    var nbList:Number = Math.floor(Math.random()*7);
    cette ligne de code pourrais ce traduire par:
    je choisie un nombre entre 0 et 6

    N'oublie pas que dans les 3/4 des langages le 0 est compté, donc s'il est compté, pour avoir les 7 premier nombre on a bien:
    0 1 2 3 4 5 6

    pour résumer:
    Code:
    Math.random()*7
    choisie bien les 7 premiers nombres donc 0-1-2-3-4-5-6


    _________________
    J'me fais de la pub et na tongue

    rahjuliano
    Ceinture blanche
    Ceinture blanche

    Messages : : 80
    Age : : 34
    Logiciels : Logiciels : : Quelles logiciel utilisez vous? Photoshop CS4, illustrator CS4, flash CS4, Dreamweaver CS4, mais aussi Accessoirement Encore CS4, Première CS4, indesign CS4, Bridge CS4, blender :p
    Date d'inscription : 21/01/2009

    Re: Math random avec liste de nombres

    Message par rahjuliano le Lun 2 Fév - 12:31

    d'accord pour ta traduction ! Merci bien

    J'ai quand meme qq notions, heuresement, pour ce qui est de la programmation, j'ai fais qq trucs en php (ya qq mois), javascript (ya 2ans mais pas retouché depuis) et mon site internet pro jl'ai fais en flash. (non pas pour me la péter mais juste pour que tu cernes le personnage que je suis). tongue cat

    Sinon, ca avance quand meme gràce à tes tuto et tes explications. Wink C'est vraiment bien ce que tu as fait ici, le site quoi Smile

    artkabis
    Fondateur
    Fondateur

    Messages : : 4545
    Age : : 32
    Logiciels : Logiciels : : Photoshop CS4, Flash CS4, Indesign CS4, After Effects CS4, Illustrator CS4, Premier Pro CS4, Encore CS4, Flexbuilder 3, Papervision 3D, Camtasia, Captivate, InDesign, Swift 3d, Illustrator, Dreamweaver CS3, Blender, Swift 3D, WampServer.
    Date d'inscription : 11/09/2008

    Capacités en graphisme
    Capacité graph:
    9/10  (9/10)

    Re: Math random avec liste de nombres

    Message par artkabis le Lun 2 Fév - 13:28

    Merci c'est sympa, en tout cas j'espère que tu comprends mieux le code, si ce n'est pas le cas, n'hésites surtout pas à me le dire, à la base je suis quand même ici pour que les membres comprennent mieux certaines choses.

    Par contre, j'ai été faire un tour sur ton site et j'ai remarqué (en tout cas avec ie7) que t'es pages ne se chargaient pas correctement ( http://julien.levain.free.fr/book.html ), quand on clic sur certaine de tes créas, l'apercut n'est pas disponible, voili voilou, sa peut peut-être t'aider de le savoir...


    _________________
    J'me fais de la pub et na tongue

    rahjuliano
    Ceinture blanche
    Ceinture blanche

    Messages : : 80
    Age : : 34
    Logiciels : Logiciels : : Quelles logiciel utilisez vous? Photoshop CS4, illustrator CS4, flash CS4, Dreamweaver CS4, mais aussi Accessoirement Encore CS4, Première CS4, indesign CS4, Bridge CS4, blender :p
    Date d'inscription : 21/01/2009

    Re: Math random avec liste de nombres

    Message par rahjuliano le Lun 2 Fév - 16:44

    hmmm, bizarre pourtant j'étais certain d'avoir vérifié qu'il fonctionnait sous IE 6/7 firefox 1.5/2 et safari.. et puis là à Londres, j'ai un MAC donc pas de IE7 pour tester Sad

    Mais peut etre que c'est le soucis que je n'ai jamais réglé cad qu'il faut parfois cliquer 2x ou plus sur un icone pour lancer le swf sur la droite.
    J'avais entendu dire que je pouvais résoudre le soucis en ajoutant un code javascript sur cette page. Mais aucune idée de ce que c'est! Ca éviterai de cliquer plusieurs fois sur les vignettes de gauche pour faire apparaitre à droite les swf qui se chargent dans le swf général.

    artkabis
    Fondateur
    Fondateur

    Messages : : 4545
    Age : : 32
    Logiciels : Logiciels : : Photoshop CS4, Flash CS4, Indesign CS4, After Effects CS4, Illustrator CS4, Premier Pro CS4, Encore CS4, Flexbuilder 3, Papervision 3D, Camtasia, Captivate, InDesign, Swift 3d, Illustrator, Dreamweaver CS3, Blender, Swift 3D, WampServer.
    Date d'inscription : 11/09/2008

    Capacités en graphisme
    Capacité graph:
    9/10  (9/10)

    Re: Math random avec liste de nombres

    Message par artkabis le Lun 2 Fév - 18:30

    En effet le problème survient seulement avec IE et non avec mozilla


    _________________
    J'me fais de la pub et na tongue

    Contenu sponsorisé

    Re: Math random avec liste de nombres

    Message par Contenu sponsorisé Aujourd'hui à 2:08


      La date/heure actuelle est Dim 11 Déc - 2:08