2 votes

Comment faire boucler une instruction if/else ?

Je suis novice en Javascript, donc je ne suis pas sûr de poser la bonne question ici. Mais j'ai 6 éléments - 6 arbres, sur lesquels un utilisateur peut cliquer, puis ils disparaissent. Une fois qu'ils ont tous disparu, je veux que quelque chose d'autre se produise. Mais comme je ne sais pas dans quel ordre l'utilisateur va cliquer sur les arbres (et que je n'ai pas encore beaucoup appris sur les JS), j'ai pensé qu'une instruction if/else demandant s'il ne reste que 0 arbre pourrait appeler une nouvelle fonction.

Malheureusement, je n'arrive pas à le faire fonctionner. Je ne sais pas si je l'écris de la mauvaise façon, si je le place au mauvais endroit ou si je le fais simplement mal, mais il semble qu'il donne un faux résultat dès le début, puisque l'utilisateur n'a pas encore cliqué sur quoi que ce soit. Alors comment puis-je le faire tourner en boucle et vérifier plusieurs fois combien d'arbres il reste ?

Désolé, le code est un peu long, mais je ne sais pas vraiment comment l'optimiser et le rendre plus court pour le moment.

var TreesLeft = 6;
function TreeGoneOnClick(){
console.log("TreeGoneOnClick");
    BigTrees.classList.add("flash");
//click each tree
    tree1.addEventListener("click", tree1Clicked);
    tree2.addEventListener("click", tree2Clicked);
    tree3.addEventListener("click", tree3Clicked);
    tree4.addEventListener("click", tree4Clicked);
    tree5.addEventListener("click", tree5Clicked);
    tree6.addEventListener("click", tree6Clicked);

ifelse();
}

function tree1Clicked (){
    console.log("tree1 clicked");
    TreesLeft-=1;
    tree1.classList.remove("tree1S");
}

function tree2Clicked (){
    console.log("tree2 clicked");
    TreesLeft-=1;
    tree2.classList.remove("tree2S");
}

function tree3Clicked (){
    console.log("tree3 clicked");
    TreesLeft-=1;
    tree3.classList.remove("tree3S");
}

function tree4Clicked (){
    console.log("tree4 clicked");
    TreesLeft=TreesLeft-1;
    tree4.classList.remove("tree4S");
}

function tree5Clicked (){
    console.log("tree5 clicked");
    TreesLeft-=1;
    tree5.classList.remove("tree5S");
}

function tree6Clicked (){
    console.log("tree6 clicked");
    TreesLeft-=1;
    tree6.classList.remove("tree6S");
}

function ifelse(){
    if (TreesLeft ==0){
    console.log("it worked");
     allTreesGone();
     }
    else {
    console.log("did not work");
    }
  }

 function allTreesGone (){
   console.log("All trees are gone");
 }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X