0
votes

Comment puis-je vérifier si tous les éléments sont fausses dans une boucle et une réponse de retour / stockage dans une variable? Réagir JS

J'ai 5 x 5 table contenant différentes cellules colorées. Si toutes les cellules tournent une couleur, l'utilisateur a "gagné".

Table: P>

    let hasWon = false;
    let myBoard = board; // this is the 5x5 table i'm iterating over

    for(let i = 0; i < myBoard.length; i ++){ // looping over board rows
      for(let j = 0; j < myBoard.length; j ++){ // looping over each cell in each row
          let boardCells = myBoard[j]; // this returns an array of `true` or `false` cells 



     (How do i check here if all the cells are false and return the answer so i can store it 
      in the `hasWon` variable above?)



      }
    }

    this.setState({
      board: board,
      hasWon: hasWon
    });
  }


3 commentaires

Vous n'utilisez pas la variable i dans votre boucle imbriquée. Est myboard un tableau plat ou est-ce une matrice de tableaux? Soit vous avez besoin de référencer myboard [j] [i] [i] pour un tableau de tableaux ou myboard [j * myboard.length + i] pour un tableau plat.


En ce qui concerne votre question initiale, commencez peut-être avec le cas simple de la manière dont vous détermineriez-vous que tous sont faux pour 2 variables booléennes, puis 3 variables booléennes, essayez ensuite d'extrapoler cela à la boucle imbriquée.


@Ianwilson myboard est une matrice de tableaux: (5) [tableau (5), tableau (5), tableau (5), tableau (5), tableau (5)] 0: (5) [faux, faux, vrai, vrai, vrai] 1: (5) [vrai, faux, faux, faux, true] 2: (5) [faux, faux, faux, faux, faux] 3: (5 ) [FALSE, TRUE, FAUX, FAUX, FALSE] 4: (5) [FAUX, FAUX, VRAI, FAUX, FAUX]


3 Réponses :


0
votes

Comme sommation en mathématiques, le et ( && ) possède la propriété associative et commutative.

Qu'est-ce que cela signifie que si vous mettez à jour à plusieurs reprises votre haswon dans une boucle faisant quelque chose comme haswon = haswon &&! Cellvalue


0 commentaires

0
votes

Je ne sais pas dans quel contexte vous utilisez cela, mais j'ai fait quelque chose comme ça avant. Fondamentalement, vous générez une sortie, mais vous n'avez aucun moyen de voir l'état des cellules, non? Ce que je ferais dans cette situation, ajouterait un gestionnaire d'événements (probablement onclick) comme ceci: xxx

Cet autre attribut peut être un pupitre de 's

vous pouvez utilisez ceci. Si vous n'avez pas compris cette réponse, n'hésitez pas à commenter ci-dessous afin que je puisse aider


2 commentaires

Hey, je connais l'état des cellules par console.logging mais j'ai juste besoin de boucler sur toutes les cellules et de retourner si elles étaient toutes false si l'appel des cellules étaient égaux à False, l'utilisateur a gagné le jeu!


Oh, c'est comme une celles des casinos dans les films. Pour les couleurs.



1
votes

Quelque chose comme: xxx

avec goto (étiquettes) sera encore plus rapide mais il est anti-motif. xxx

ou vous pouvez utiliser très court terme: xxx


4 commentaires

Cela fonctionne et c'est ce que je voulais, mais j'ai aussi la regarder correctement et voir comment et pourquoi!


Pourquoi vérifiez-vous si gagné est faux dans la première boucle? @Arthurrubens


Dès que je trouve une valeur «vraie», je sors de la deuxième boucle, après cela, je dois sortir du premier. C'est pourquoi je le vérifie. Pour éviter ces chèques, vous pouvez utiliser tandis que () contrôler ou même goto. Le dernier est le moyen le plus rapide.


Ok merci l'explication et le code aide que je vais écrire ça en bas :)