begin process at 2012 05 26 18:45:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Flash

 > 

Archives

 > 

ActionScript

 > 

Chifres aléatoires non répétés


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Chifres aléatoires non répétés

dimanche 22 août 2004 à 15:48:52 | Chifres aléatoires non répétés

n_lefebvre

Salut,

Je débute un peu dans Flash et ActionS. Je dévelope un clip qui doit attribuer 22 chiffres de maniere aléatoire a dans un liste en Array, mais ils ne peuvent pas être répéter.
Voici mon code:
var sortir:Boolean = False;
var liste:Array = new Array();
for (var i:Number= 0; i<22; i++){
while (Sortir==false){
sortir = true;
var nbre:Number = Math.round(Math.random()*22);
for (var j:Number=0; j<=i; j++){
if (liste[j]==nbre){
sortir = false;
break;
}
}
}
liste[i] = string(randomNum);
sortir = false;
}

Mon problème est qu'apparement il doit être trop lourd car j'obtien l'erreur suivante:
"Un script de cette animation ralentit l'exécution de Flash Player. Si l'exécution n'est pas suspendue il est possible que votre ordinateur ne réagisse plus. Abandonner le script?"

Est-ce que quelqu'un pourrait m'aider ou m'éclairer si j'aurais pas fait une gaffe.

Merci d'avance.

Thanae
lundi 23 août 2004 à 09:59:01 | Re : Chifres aléatoires non répétés

adv

Hello,
le problème vient de la sorte d'algorithme que tu utilises pour faire ta liste aleatoire. Si nous prenons l'exemple du dernier nombre aleatoire que tu cherches. Il n'y a plus qu'une seule possibilité et tu attends que ce soit un tirage aleatoire qui le sorte. Dans ton cas, il y a 1 chance sur 22 qu'il sorte, si il ne sort pas, à nouveau une chance sur 22.
C'est ton approche qui est fausse. Si j'ai bien compris, il faut une liste des nombres 0 à 21 dans un ordre aléatoire. Si c'est le cas, il te faut essayer à un algorithme du style :
- créé un tableau des nombres dans l'ordre.
for(i=0;i<nbreMax;i++){
liste.push(i);
}
- ensuite il te faut mélanger ces nombres :
for(i=0;i<nbreMelange;i++){
pos1 = Math.round(Math.random()*nbreMax);
pos2 = Math.round(Math.random()*nbreMax);
temp = liste[pos1];
liste[pos1] = liste[pos2];
liste[pos2] = temp;
}
Globalement, l'idée est là et ça devrait fonctionner. Pour le nombre de mélange, c'est à toi de voir, mais 50 devrait suffire.
Si tu rencontre un problème, n'hesite pas.
lundi 23 août 2004 à 11:09:24 | Re : Chifres aléatoires non répétés

kingcobra

salut,
moi j'ai peut etre un peu mieux (moins d'étapes aléatoires inutiles) :

//création de la liste
var liste = new Array(22);
for (var i = 0; i<22; i++) {
liste[i] = i;
}
//tmpliste sera le nouveau tableau rangé aleatoirement
var tmpliste = new Array();
var i = 0;
while (liste.length != 0) {
//un indice aléatoire
var rando = random(liste.length);
tmpliste[i] = liste[rando];
i++;
//on echange le premier element avec l'element selectionner par rando
liste[rando] = liste[0];
//on supprime le premier element
liste.shift();
}
//la trace renvoie la liste de 22 nombre aleatoire mais jamais pareil
trace(tmpliste);

voila t'a plus qu'a lire tmpliste dans l'ordre de 0 a tmpliste.length

KiNgCoBrA
lundi 23 août 2004 à 11:18:25 | Re : Chifres aléatoires non répétés

n_lefebvre

Je vous remercie à tout les 2, c'est vrai que je n'y avais pas songé, comme quoi il y a toujours plus dans 2 (ou 3 ;-)) têtes que dans 1!
Je vais de ce pas tester et on verra! En tout cas un grand merci, car j'était vraiment bloquée là dessus depuis qqs jours.

Thanae


Cette discussion est classée dans : liste, var, array, false, sortir


Répondre à ce message

Sujets en rapport avec ce message

Problème de chargement array [ par adramele ] Bonjour à tous !Je suis face à un soucis... je débute. Ce code va chercher une variable faite d'une séquence avec virgule dans un fichier php pour ens [Flash AS]Lecteur mp3 + liste xml [ par tfk16 ] Bonjour a tous et a toutes je poste aujourd'hui ce sujet qui me derange depuis longtemps bon sans plus tarder je vous donne le probleme . J'ai conçu u Préchargement d'image [ par Kangouroops ] Bonjour tout le monde, Je viens à vous pour une petite question, Je suis entrain de faire un générateur d'avatar: http://hanser.perso.neuf.fr/Amaury Unload external swf [ par mdracula ] [color=blue]Dear All, Please i need your help [^^clinoeil2] , i'm making a flash website with AS3, so we have index.swf and about.swf index.swf | Unload swf [ par mdracula ] Bonjour, Voila j'ai chercher la solution des jours mais aucune reponse [^^sad1] L'image suivante explique les fichiers du projet: [img]http://www.4s as3 : vérifier la postion d'un clip [ par nray ] Bonjour à tous, Le but final de mon programme est de déplacer des clips (start & stop drag ok) et de les positionner au bon endroit afin de reconsti AS 3 problème de quadrillage aléatoire de pieces [ par nray ] Bonjour à tous, Au secours !! J'ai beau tourner mes arguments dans tous les sens, impossible d'arriver à l'effet escompté, à savoir : je charge dynam quelqu'un a deja vu ce type de script? [ par armadio2010 ] bonjour tout le monde, je suis sur le point de modifier un site, lors que j'ai ouvert le fla : import easing.*;var initialisation_site:Boolean=true [AS3] Problème avec les classes [ par jytest ] Je débute en actionscript (pour flash CS4). J'ai un problème de compilation avec les classes... "Impossible de charger la classe ou l'interface" pour Recupération avant-derniere valeur Array as3 [ par Ariranha ] Bonjour, Je travaille actuellement sur un petit bout de code qui me permet de stocker dans plusieurs Array les mouvements de la souris. J'aurais aim


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,763 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales