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 :

Initialisation variables dans une boucle for


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Initialisation variables dans une boucle for
    Salut tout le monde


    Nom : insidelopp.png
Affichages : 265
Taille : 46,6 KoNom : ouside loop.png
Affichages : 254
Taille : 36,1 Ko j'ai un problème que j'arrive pas à comprendre je fais un jeu de dames et je veux gérer le cases du damier ds un tableau que j'intialise ds ma boucle for
    Mon probleme est qu'en faisant l'affichage dans la boucle tout s'affiche correctement sauf qu'en dehors de la boucle ça alterne les lignes en noir et Blanc et pas les cases

    Voila le bout du code concerné ac des captures du résultat


    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    var dame = new Array(10);
    for (var i = 0; i < 10; i++) 
       dame[i] = new Array(10).fill({});
      var i, j;
     
      for (i = 0; i < 10; i++) {
        for (j = 0; j < 10; j++) {
            var n = i * j;
     
            if ( (  ( ( (i%2)==1)&&((j%2)==0)  ) ||  (  ((i%2)==0)  &&  ( (j%2)==1) ))  )  
            {
                console.log("rentré ds le blanc");
     
                dame[i][j].color = 'B';
                dame[i][j].pion = 'N/A'; //Not Allowed
                console.log("i=" + i + "j= " + j + "color= " + dame[i][j].color + "  pion" + dame[i][j].pion);
            } 
            else if ( (  (  ((i%2)==0)  && ((j%2)==0) ) ||  (  (  (i%2)==1 )  &&  ( (j%2)==1) ) )) 
            {
                console.log("rentré ds le noir");
                dame[i][j].color = 'N';
                dame[i][j].pion = 'A/A'; //allowed
                console.log("i=" + i + "j= " + j + "color= " + dame[i][j].color + "  pion" + dame[i][j].pion);
            }
        }
      }
    }

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    merci d'utilise le bouton # pour poster du code
    et surtout d'expliquer clairement le bug
    à quelle ligne ça plante

    car là c'est incompréhensible.
    A+

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre réponse

    En effet je gère mon damier dans un tableau à 2 dimensions dont i parcours les colonnes et j les lignes
    Je souhaite initialiser la couleur e chaque case de ce tableau de noir ou de blanc selon la position.
    Le résultat que je suis sensée avoir est d'alterner en noir et blanc les cases et c'est ce qui est fait lorsque je fait l'affichage dans la boucle.
    Sauf en dehors de la boucle, ça ne s'affiche pas correctement, ça initialise la TOUTE la 1ère ligne à Banc la 2ème à Noir et ainsi de suite, cad que ça change de ce qui a été initialiser dans la boucle malgré que j'initialise le tableau nulle part ailleurs
    J'espère etre plus claire maintenant

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    fill() ne convient pas pour un objet, car il met le même objet partout. Voir : https://www.developpez.net/forums/bl...ns-array-from/

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
      <meta http-equiv="cache-control" content="public, max-age=60">
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <meta name="author" content="Daniel Hagnoul">
      <title>Test</title>
      <style>
     
      </style>
      <script>
        'use strict';
            
        document.addEventListener( 'DOMContentLoaded', ev => {
          
          
        }, false );
        
        window.addEventListener( 'load', ev => {
     
          function Case( color, pion ){
            this.color = color;
            this.pion = pion;
          }
           
          const
            longueur = 10,
            dame = Array.from( new Array( longueur ), () => Array.from( new Array( longueur ), () => new Case( "grise", "X" ) ) );
           
          /*
           // debug
          dame[1][1].pion = 66;
          dame[5][5].color = "yellow";
          
          // debug
          for ( let [ i, item ] of dame.entries() ){
            for ( let [ j, jtem ] of item.entries() ){
              console.log( i, j, jtem );
            }
          }
          */
          
          for ( let [ i, item ] of dame.entries() ){
            for ( let [ j, jtem ] of item.entries() ){
              if ( ( ( i % 2 == 1 ) && ( j % 2 == 0 ) ) || ( ( i % 2 == 0 ) && ( j % 2 == 1 ) ) ){
                jtem.color = 'B';
                jtem.pion = 'N/A'; //Not Allowed      
              } else if ( ( ( i % 2 == 0 ) && ( j % 2 == 0 ) ) || ( ( i % 2 == 1 ) && ( j % 2 == 1 ) ) ) {      
                jtem.color = 'N';
                jtem.pion = 'A/A'; //allowed
              }
              
              console.log( i, j, jtem );
            }
          }
          
        }, false );
      </script>
    </head>
    <body>
      <main>
     
     
      </main>
    </body>
    </html>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. Probleme dans une boucle for, faisant appel a une fonction
    Par mapotam dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 22/01/2010, 21h41
  2. Probleme de syntaxe dans une boucle for
    Par spoker04 dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/09/2008, 10h12
  3. Réponses: 18
    Dernier message: 25/07/2007, 12h34
  4. initialiser les vertex dans une boucle for
    Par StrikerFred dans le forum DirectX
    Réponses: 10
    Dernier message: 26/09/2006, 10h36
  5. probleme dans un boucle for
    Par accoustic dans le forum Delphi
    Réponses: 2
    Dernier message: 26/08/2006, 10h45

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