Parcourir un tableau
difficile boucles Nous avons créé par copier/coller les éléments d'un tableau. Mais il n'est pas souhaitable de procéder ainsi. Dès que l'on a à faire à des répétitions, l'ordinateur est là pour assurer le travail. Pour répéter une action un certain nombre de fois, on utilise les boucles.
Nous allons rajouter une variable qui indique le nombre de flocons (ici, 150).
var nombreFlocons=150;
Ensuite, nous construire une boucle pour répéter 150 fois l'insertion d'un flocon dans les tableaux.
for ( var compteur=0; compteur < nombreFlocons ; compteur = compteur + 1) {
abscisses.push(random(width));
ordonnees.push(random(height));
}
Pour rappel, la définition d'une boucle contient trois éléments :
- L'initialisation. Ici, on crée une variable compteur qui vaut 0
- La condition à respecter. Ici, on continue de boucler tant que la valeur de compteur est plus petite que 150
- Enfin, le dernier élément de définition de la boucle est exécuté après chaque boucle. Ici, on ajoute un au compteur à chaque passage
En résumé, ici, voici les différentes étapes :
- Le compteur vaut 0. Il est plus petit que 150, on exécute le bloc
- Le bloc ajoute une valeur dans le tableau des abscisses et une valeur dans le tableau des ordonnées.
- On ajoute 1 au compteur. Il vaut 1, qui est plus petit que 150, on exécute le bloc
- Puis le compteur vaudra 2,3, ... jusqu'à 149. À 150, on arrête la boucle.
Nous avons rempli le tableau et créé nos flocons. Maintenant, nous allons les afficher. Lorsque nous affichions un seul flocon, "à la main", nous utilisions le code suivant.
// déplacement et dessin du permier flocon
ordonnees[0] = ordonnees[0]+3;
ordonnees[0] = ordonnees[0] % height;
ellipse(abscisses[0],ordonnees[0],diametre,diametre);
Ici, nous allons devoir faire la même chose, mais au lieu de 0, il faudra successivement les valeurs 0,1,2,3 ... jusqu'à 149. Ça tombe bien, c'est exactement les valeurs que prend successivement la variable compteur. Nous allons donc nous en servir pour parcourir le tableau. Nous entourons ce bloc avec la même boucle for qu'au dessus et remplaçons les 0 par la variable compteur. Le code source se trouve dans l'exemple ci dessous.
Exemple
À faire vous même
Voici la liste des exercices possibles :- Rendre le nombre de flocons variables, entre 100 et 300.
- Le diamètre des flocons est le même pour tous. Ne serait il pas possible d'avoir un diamètre pour chaque flocon ?
- Faites en sorte que la vitesse des flocons soit proportionnelle au diamètre : les gros flocons descendent plus vite.
- tests En utilisant les tests, faites en sorte que quand un flocon arrive en bas, il soit remplacé par un nouveau flocon qui arrive en haut, avec un nouveau diamètre aléatoire, une nouvelle abscisse aléatoire.
- Faites en sorte que les flocons oscillent légèrement de gauche à droite (légèrement).