Forums Développement Multimédia

Aller au contenu

- - - - -

Pose de tuiles aléatoires avec while

CODE array random

2 réponses à ce sujet

#1 archiroc

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 02 December 2016 - 11:48 AM

Bonjour !

Je viens poser un ptit problème qui m'interroge.
Et puis ça fait vivre ce Forum !

Donc voilà :
Je veux assigner 15 valeurs prédéfinies de façon aléatoires à 15 clip.

Ma solution,
vraisemblablement étrange,
un tableau avec mes clips,
un tableau dans lequel je range mes valeurs assignées au fur et à mesure pour être bien sûr qu'elle n'aient pas été déjà appliquée je ne sais ou...

De fait : une boucle while :
Tant que ce n'est pas assigné tu cherches une autre valeur parmi les 15 valeurs existantes.
( il y a peu de chance pour que "random" me donne une succession de valeur identique qui bloquerait de fait ma boucle à l'infini )

Vous avez compris les gens ???


var TuileJ1: Array = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
var Val1: Array = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

function Posecase(): void {

var i: int = 1;
var i: int ;

///// LA BOUCLE QUI M'INTERROGE CI DESSOUS

while (i < 16) {
  j = 2 + Math.random() * 15;
  if (Val1[j] == 0) { // Si la valeur n'a pas encore été assignée
   Val1[j] = 1;
   TuileJ1[i] = j;
   this["TJ" + i].gotoAndStop(j); // Mon clip va à la valeur assignée
 
   i++;
  }
}
}
 


Et puis, pour 15 tuiles ça marche,
Mais si il en avait 2000 ptêt bien que sa ramerait...

Vive la République, Vive MEDIABOX !

#2 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1786 messages

Posté 02 December 2016 - 12:14 PM

Tu veux mélanger un Array (shuffle) ?


function ShuffleArray(input:Array):void {
  for (var i:int = input.length-1; i >=0; i--){
        var randomIndex:int = Math.floor(Math.random()*(i+1));
        var itemAtIndex:Object = input[randomIndex];
        input[randomIndex] = input[i];
        input[i] = itemAtIndex;
  }
}
 


#3 archiroc

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 02 December 2016 - 12:33 PM

Merci POL !

Pour sûr c'est plus efficace... HIHIHI. J'suis trop nul.... :oops:

A+ pour de nouvelles interrogations existentielles.




Répondre à ce sujet



  

1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP