IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Tableaux, boucle for et répétition


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2019
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Tableaux, boucle for et répétition
    Bonjour à tous,

    Nouvel apprenant dans le monde de la programmation, j'effectue mes premiers pas sur le site Khanacademy. Tout se passe très bien pour moi, j'ai assimilé beaucoup de choses. Cependant, je suis tombé sur mon premier obstacle. L'enchainement d'apprentissage des boucles while/for, et des tableaux.

    Ici, je dois réaliser une petite animation de gouttes de pluie en mettant en éxecution les tableaux (pour le nombre de goutte), la boucle "for" pour répéter l'incrémentation de la goutte vers le bas sur l'axe Y. Je dois intégrer une partie de code pour répéter la fonction draw indéfiniment sous forme de condition. C'est à dire, quand les gouttes touchent le sol, elles repartent d'en haut pour à nouveau toucher le sol.

    Voici la partie de code qui est donné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    var xPositions = [200];
    var yPositions = [0];
     
    draw = function() {
        background(71, 71, 71);
     
        for (var i = 0; i < xPositions.length; i++) {
            noStroke();
            fill(0, 200, 255);
            ellipse(xPositions[i], yPositions[i], 10, 10);
            yPositions[i] += 5;
        }
     
    };
    J'ai essayé un tas de choses, bien que mes connaissances soient très légères. Je n'ai pas réussi à effectuer la répétition. J'ai essayé également via une condition If (mouseIsPressed), sans résultat non plus.

    Merci d'avance pour vos réponses !

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Bonjour,

    Il manque un peu de code pour mieux comprendre ce que tu as fait; un lien vers le rendu serait intéressant;

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Je crois deviner l’intention ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var xPositions = [200];
    var yPositions = [0];
    Tu as voulu définir un tableau à 200 emplacements pour x, et un tableau vide pour y. En réalité, JavaScript a créé, pour chacune de ces deux variables, un tableau à 1 emplacement contenant le nombre 200 pour x et le nombre 0 pour y.

    En fait, ça ne sert pas à grand chose de donner une taille de départ à un tableau en JavaScript, à part quand on cherche à optimiser (et encore, je ne crois pas que ce soit une bonne idée personnellement). La taille d’un tableau est dynamique et évolue en fonction des choses qu’on y met. En l’occurence, tu peux très bien déclarer deux tableaux vides :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var xPositions = [];
    var yPositions = [];
    Et spécifier en dur dans la boucle for le nombre d’itérations, et ainsi le nombre d’éléments qui seront insérés dans les tableaux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (var i = 0; i < 200; i++) {
      ...
    }
    Mais un réflexe à adopter, dès qu’on rencontre une valeur en dur dans le code, est de se poser la question : « est-ce que je n’ai pas intérêt à utiliser une constante ? »
    Ton cours en ligne n’a peut-être pas encore abordé le sujet des constantes, mais s’il est bien fait, il y viendra bientôt. Les constantes permettent d’éviter les répétitions et de n’avoir qu’un seul endroit à modifier dans le code quand on veut changer la valeur, par exemple mettre 300 à la place de 200.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    const ITERATIONS = 200;
     
    ...
     
    for (var i = 0; i < ITERATIONS; i++) {
      ...
    }
    Pour terminer, un petit conseil : pense à utiliser la console F12 pour examiner tes variables dès que tu as un doute

  4. #4
    Membre éclairé
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 335
    Points : 715
    Points
    715
    Par défaut
    Bonjour,
    C'est une possibilité Watilin, d'un autre côté, il dit que c'est une partie de code donnée... Il n'y a peut-être bien qu'une goutte pour démarrer.

    Citation Envoyé par Adnbnt Voir le message
    C'est à dire, quand les gouttes touchent le sol, elles repartent d'en haut pour à nouveau toucher le sol.
    Essayer ceci en fin de boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(yPositions[i]>ySol) {
    	yPositions[i]=0;
    }
    "ySol" étant soit à remplacer directement par la valeur souhaitée, soit à définir sous forme de variable ou constante par ailleurs.

Discussions similaires

  1. [Tableaux] boucle , for , while
    Par marty499 dans le forum Langage
    Réponses: 4
    Dernier message: 09/04/2008, 11h10
  2. [Tableaux] Boucle for dans condition de if
    Par Lenorah dans le forum Langage
    Réponses: 5
    Dernier message: 03/03/2008, 18h06
  3. Réponses: 3
    Dernier message: 04/08/2006, 19h24
  4. [Eval] Problème de boucle for sur des tableaux
    Par battle_benny dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/01/2006, 23h55
  5. [Tableaux] boucle for et instruction continue
    Par reg11 dans le forum Langage
    Réponses: 4
    Dernier message: 16/12/2005, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo