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:
Voyons tout d'abord la partie qui nous intéresse le plus, l'array:
Dans cette ligne:
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:
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:
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:
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:
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
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