J'essaie de faire un jeu Rock-Paper-Scissor avec un score décroissant.

Lorsque le score «0» est atteint, mon script devrait afficher une boîte d'alerte. Dire you lose ou you win

Comment faire cela en JavaScript?

Je ne veux pas non plus que le code affiche davantage les valeurs négatives.

var cpu_score = 5;
var me_score = 5;

function stone() {
  var choice = ["stone", "paper", "scissor"];
  var num = Math.floor(Math.random() * 3);
  var cpu_choice = choice[num];

  document.getElementById("p1").innerHTML = "CPU choosed: " + cpu_choice;
  document.getElementById("p2").innerHTML = "YOU choosed: stone";

  if (cpu_choice == "paper") {
    document.getElementById("p3").innerHTML = "YOU LOSE! OH PITY GOD!";
    cpu_score--;
  }
  if (cpu_choice == "stone") {
    document.getElementById("p3").innerHTML = "Close LUCK! It's DRAW!";
  }
  if (cpu_choice == "scissor") {
    document.getElementById("p3").innerHTML = "WON THE A.I! GREAT";
    me_score--;
  }

  document.getElementById("s1").innerHTML = cpu_score;
  document.getElementById("s2").innerHTML = me_score;
}


function paper() {
  var choice = ["stone", "paper", "scissor"];
  var num = Math.floor(Math.random() * 3);
  var cpu_choice = choice[num];

  document.getElementById("p1").innerHTML = "CPU choosed: " + cpu_choice;
  document.getElementById("p2").innerHTML = "YOU choosed: paper";

  if (cpu_choice == "scissor") {
    document.getElementById("p3").innerHTML = "YOU LOSE! OH PITY GOD!";
    cpu_score--;
  }
  if (cpu_choice == "paper") {
    document.getElementById("p3").innerHTML = "Close LUCK! It's DRAW!";
  }
  if (cpu_choice == "stone") {
    document.getElementById("p3").innerHTML = "WON THE A.I! GREAT";
    me_score--;
  }

  document.getElementById("s1").innerHTML = cpu_score;
  document.getElementById("s2").innerHTML = me_score;
}



function scissor() {
  var choice = ["stone", "paper", "scissor"];
  var num = Math.floor(Math.random() * 3);
  var cpu_choice = choice[num];

  document.getElementById("p1").innerHTML = "CPU choosed: " + cpu_choice;
  document.getElementById("p2").innerHTML = "YOU choosed: scissor";

  if (cpu_choice == "stone") {
    document.getElementById("p3").innerHTML = "YOU LOSE! OH PITY GOD!";
    cpu_score--;
  }
  if (cpu_choice == "scissor") {
    document.getElementById("p3").innerHTML = "Close LUCK! It's DRAW!";
  }
  if (cpu_choice == "paper") {
    document.getElementById("p3").innerHTML = "WON THE A.I! GREAT";
    me_score--;
  }

  document.getElementById("s1").innerHTML = cpu_score;
  document.getElementById("s2").innerHTML = me_score;
}
1
Mukunth 12 avril 2018 à 19:10

3 réponses

Meilleure réponse

Vous pouvez passer your choice à la fonction et procéder à des tests basés sur cet argument, sans avoir besoin de trois fonctions distinctes qui sont fondamentalement les mêmes.

var cpu_score = 5;
var me_score = 5;

function round(myChoice) {
  var choice = ["stone", "paper", "scissor"];
  var num = Math.floor(Math.random() * 3);
  var cpu_choice = choice[num];

  document.getElementById("p1").innerHTML = "CPU choosed: " + cpu_choice;
  document.getElementById("p2").innerHTML = "YOU choosed: " + myChoice;

  if (cpu_choice === myChoice) {
    document.getElementById("p3").innerHTML = "Close LUCK! It's DRAW!";
  } else if (cpu_choice === 'stone') {
    if (myChoice === 'paper') {
      document.getElementById("p3").innerHTML = "YOU LOSE! OH PITY GOD!";
      cpu_score--;
    } else {
      document.getElementById("p3").innerHTML = "WON THE A.I! GREAT";
      me_score--;
    }
  } else if (cpu_choice === 'paper') {
    if (myChoice === 'scissor') {
      document.getElementById("p3").innerHTML = "YOU LOSE! OH PITY GOD!";
      cpu_score--;
    } else {
      document.getElementById("p3").innerHTML = "WON THE A.I! GREAT";
      me_score--;
    }
  } else if (cpu_choice === 'scissor'){
    if (myChoice === 'stone') {
      document.getElementById("p3").innerHTML = "YOU LOSE! OH PITY GOD!";
      cpu_score--;
    } else {
      document.getElementById("p3").innerHTML = "WON THE A.I! GREAT";
      me_score--;
    }
  }

  document.getElementById("s1").innerHTML = cpu_score;
  document.getElementById("s2").innerHTML = me_score;

  if (cpu_score === 0) {
    alert('You Win');
  }
  if (me_score === 0) {
    alert('You Lose');
  }
}

Et enfin afficher le message si le score de quelqu'un atteint 0.

0
Matus Dubrava 12 avril 2018 à 16:33

Vous pouvez y parvenir avec quelques instructions if simples et la fonction alert():

if (cpu_score <= 0) {
    alert('you win')
}
if (me_score <= 0) {
    alert('you lose')
}

Cette logique pourrait être placée dans une fonction nommée checkGameOver() et elle pourrait être appelée chaque fois qu'un tour est terminé.

0
Jamie 12 avril 2018 à 16:21

Essayez quelque chose comme:

if(me_score <= 0){alert("put here the text you want in the alert box")}

Cela devrait vous donner la boîte d'alerte lorsque votre score atteint 0 ou moins.

0
Adri 12 avril 2018 à 16:21