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;
}
3 réponses
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.
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é.
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.