Probleme "rock , paper, scissors " algorithm


#1

Hello , first sorry for my English, I 'm French . I have a problem for the "rock , paper, scissors " algorithm , I see no errors, but on screen, there is not the part that says "equality" or " stone victories " ... thank you in advance for your assistance


#2

This forum has no support, I'm afraid.


#3

Hello someone can help us with this code ! SyntaxError: expected expression, got keyword 'else'

--code--
var choixUtilisateur = prompt("Choisissez-vous pierre, feuille, ou ciseaux ?");
var choixOrdi = Math.random();
if (choixOrdi < 0.34) {
choixOrdi = "pierre";
} else if(choixOrdi <= 0.67) {
choixOrdi = "feuille";
} else {
choixOrdi = "ciseaux";
} console.log("Ordinateur : " + choixOrdi);

var comparer = function(choix1, choix2) {
if(choix1 === choix2) {
return "Egalité !";
}
// --Cas d'égalité--
// --choix1 la pierre --
if (choix1 === "pierre"){
else if(choix1 === "pierre"){
if (choix2 === "ciseaux"){
return "pierre gagne !";
}
}
else {
return "feuille gagne !";
}
}
// --choix1 la feuille --
if (choix1 === "feuille"){
else if(choix1 === "feuille"){
if (choix2 === "pierre"){
return "feuille gagne !";
}
}
else {
return "ciseaux gagnent !";
}
}
// --choix1 les ciseaux --
if (choix1 === "ciseaux"){
else if(choix1 === "ciseaux"){
if (choix2 === "pierre"){
return "pierre gagne !";
}
}
else {
return "pierre gagne !";
}
}
// --choix1 les ciseaux et choix 2 la feuille--
if (choix1 === "ciseaux"){
else if(choix1 === "ciseaux"){
if (choix2 === "feuille"){
return "ciseaux gagnent !";
}
}
else {
return "pierre gagne !";
}
}
}
--end code --


#4

@javamaster00903 Well i'm sorry but If you are french like me... You can speak with a english spoken peoples !
Qui plus est comment veut tu que l'on te réponde si tu n'inclus pas ton code, @ +


#5

Quite a few typing errors, but basically you are nesting else if when it isn't needed, since you are attempting to test again the condition that was tested in the opening if statement. Secondly the else statement is expecting to be following an if statement, but since the if statement before it is not closed it can't follow it. You can get your code working by removing the unneeded 'else' from the 'else if'. I've pasted below code that shows that the extra test isn't needed.

If we take your first if block:
The syntax is wrong

// --Cas d'égalité--
// --choix1 la pierre --
if (choix1 === "pierre"){ //<--- this test is the same test as the else below
[[else]] if(choix1 === "pierre"){ //<---- the if before the else is not closed, therefore else should be removed
if (choix2 === "ciseaux"){
return "pierre gagne !";
}
}
else {
return "feuille gagne !";
}
}

var choixUtilisateur = prompt("Choisissez-vous pierre, feuille, ou ciseaux ?");
console.log("Utilisateur : " + choixUtilisateur);

var choixOrdi = Math.random();
if (choixOrdi < 0.34) {
choixOrdi = "pierre";
} else if(choixOrdi <= 0.67) {
choixOrdi = "feuille";
} else {
choixOrdi = "ciseaux";
} console.log("Ordinateur : " + choixOrdi);
console.log(comparer(choixUtilisateur, choixOrdi));

var comparer = function(choix1, choix2) {
if(choix1 === choix2) {
return "Egalité !";
}
// --Cas d'égalité--
// --choix1 la pierre --
if(choix1 === "pierre"){
if (choix2 === "ciseaux"){
return "pierre gagne !";
}
}
else {
return "feuille gagne !";
}

// --choix1 la feuille --
if(choix1 === "feuille"){
if (choix2 === "pierre"){
return "feuille gagne !";
}
}
else {
return "ciseaux gagnent !";
}

// --choix1 les ciseaux --
if(choix1 === "ciseaux"){
if (choix2 === "pierre"){
return "pierre gagne !";
}
}
else {
return "pierre gagne !";
}

// --choix1 les ciseaux et choix 2 la feuille--
if(choix1 === "ciseaux"){
if (choix2 === "feuille"){
return "ciseaux gagnent !";
}
}
else {
return "pierre gagne !";
}

};


#6

Thanks for your time.I corrected that code and it still doesn't work...
//<-- Query result: SyntaxError: missing before statement

//<-- code --
//<--Code below is it necessary ?--
/*
var choixUtilisateur = prompt("Choisissez-vous pierre, feuille, ou ciseaux ?");
var choixOrdi = Math.random();
if (choixOrdi < 0.34) {
choixOrdi = "pierre";
} else if(choixOrdi <= 0.67) {
choixOrdi = "feuille";
} else {
choixOrdi = "ciseaux";
console.log("Ordinateur : " + choixOrdi);
}*/
// <--Cas d'égalité + var comparer--
var comparer = function(choix1, choix2) {
if(choix1 === choix2) {
return ("Egalité !");
}
// <--1-choix la pierre vs les ciseaux--
if (choix1 === "pierre"){
}
else(choix2 === "ciseaux"){

return ("pierre gagne !");

}
// <--1b-choix les ciseaux vs la pierre--
if (choix1 === "ciseaux"){
}
else(choix2 === "pierre"){

return ("pierre gagne !");

}
// <--2-choix la feuille vs la pierre --
if (choix1 === "feuille"){
}
else(choix2 === "pierre"){

return ("feuille gagne !");
}

// <--2b-choix la pierre vs la feuille --
if (choix1 === "pierre"){
}
else(choix2 === "feuille"){

return ("feuille gagne !");
}

// <--3-choix les ciseaux vs la pierre--
if (choix1 === "ciseaux"){
}
else(choix2 === "pierre"){

  return ("pierre gagne !");
  }

// <--3b-choix la pierre vs les ciseaux--
if (choix1 === "pierre"){
}
else(choix2 === "ciseaux"){

  return ("pierre gagne !");
  }

// --4-choix les ciseaux vs la feuille--
if (choix1 === "ciseaux"){
}
else(choix2 === "feuille"){

   return ("ciseaux gagnent !");
   }

// --4b-choix la feuille vs les ciseaux --
if (choix1 === "feuille"){
}
else(choix2 === "ciseaux"){

   return ("ciseaux gagnent !");
   }

}
//;
//<--Fin du code--End of code !--
//<-- Query result: SyntaxError: missing before statement


#7

Someone can help ?
//<-- Query result: SyntaxError: missing before statement

/*
var choixUtilisateur = prompt("Choisissez-vous pierre, feuille, ou ciseaux ?");
var choixOrdi = Math.random();
if (choixOrdi < 0.34) {
choixOrdi = "pierre";
} else if(choixOrdi <= 0.67) {
choixOrdi = "feuille";
} else {
choixOrdi = "ciseaux";
console.log("Ordinateur : " + choixOrdi);
}*/
// <--Cas d'égalité + var comparer--
var comparer = function(choix1, choix2) {
if(choix1 === choix2) {
return ("Egalité !");
}
// <--1-choix la pierre vs les ciseaux--
if (choix1 === "pierre"){
}
else(choix2 === "ciseaux"){

return ("pierre gagne !");

}
// <--1b-choix les ciseaux vs la pierre--
if (choix1 === "ciseaux"){
}
else(choix2 === "pierre"){

return ("pierre gagne !");

}
// <--2-choix la feuille vs la pierre --
if (choix1 === "feuille"){
}
else(choix2 === "pierre"){

return ("feuille gagne !");
}

// <--2b-choix la pierre vs la feuille --
if (choix1 === "pierre"){
}
else(choix2 === "feuille"){

return ("feuille gagne !");
}

// <--3-choix les ciseaux vs la pierre--
if (choix1 === "ciseaux"){
}
else(choix2 === "pierre"){

  return ("pierre gagne !");
  }

// <--3b-choix la pierre vs les ciseaux--
if (choix1 === "pierre"){
}
else(choix2 === "ciseaux"){

  return ("pierre gagne !");
  }

// --4-choix les ciseaux vs la feuille--
if (choix1 === "ciseaux"){
}
else(choix2 === "feuille"){

   return ("ciseaux gagnent !");
   }

// --4b-choix la feuille vs les ciseaux --
if (choix1 === "feuille"){
}
else(choix2 === "ciseaux"){

   return ("ciseaux gagnent !");
   }

}
//;
//<--Fin du code !--
//<-- Query result: SyntaxError: missing before statement


#8

Have a good look at the code below, I’ve been through and made some changes. The use of the nested if’s isn’t the most efficient, but should work. When you use if / else if / else code, be sure to keep an eye on where your code blocks start and finish.

Code
var choixUtilisateur = prompt("Choisissez-vous pierre, feuille, ou ciseaux ?");
var choixOrdi = Math.random();
if (choixOrdi < 0.34) {
choixOrdi = "pierre";
} else if(choixOrdi <= 0.67) {
choixOrdi = "feuille";
} else {
choixOrdi = "ciseaux";
}
console.log("Ordinateur : " + choixOrdi);
console.log("Utilisateur : " + choixUtilisateur);
comparer (choixOrdi, choixUtilisateur);
// <--Cas d'égalité + var comparer--
var comparer = function(choix1, choix2) {
if(choix1 === choix2) {
return ("Egalité !");
}
    // <--1-choix la pierre vs les ciseaux--
    if (choix1 === "pierre"){
        if(choix2 === "ciseaux"){
            return ("pierre gagne !");
        }
    }
    
    // <--1b-choix les ciseaux vs la pierre--
    if (choix1 === "ciseaux"){
        if(choix2 === "pierre"){
            return ("pierre gagne !");
        }
    }
    
    // <--2-choix la feuille vs la pierre --
    if (choix1 === "feuille"){
        if(choix2 === "pierre"){
            return ("feuille gagne !");
        }
    }
    
    // <--2b-choix la pierre vs la feuille --
    if (choix1 === "pierre"){
        if(choix2 === "feuille"){
            return ("feuille gagne !");
        }
    }
    
    
    // <--3-choix les ciseaux vs la pierre--
    if (choix1 === "ciseaux"){
        if(choix2 === "pierre"){
              return ("pierre gagne !");
        }
    }
    
    // <--3b-choix la pierre vs les ciseaux--
    if (choix1 === "pierre"){
        if(choix2 === "ciseaux"){
            return ("pierre gagne !");
        }
    }
    
    // --4-choix les ciseaux vs la feuille--
    if (choix1 === "ciseaux"){
        if(choix2 === "feuille"){
            return ("ciseaux gagnent !");
        }
    }
    
    // --4b-choix la feuille vs les ciseaux --
    if (choix1 === "feuille"){
        if(choix2 === "ciseaux"){
            return ("ciseaux gagnent !");
        }
    }
};
var choixUtilisateur = prompt("Choisissez-vous pierre, feuille, ou ciseaux ?");
var choixOrdi = Math.random();
if (choixOrdi < 0.34) {
choixOrdi = "pierre";
} else if(choixOrdi <= 0.67) {
choixOrdi = "feuille";
} else {
choixOrdi = "ciseaux";
}
console.log("Ordinateur : " + choixOrdi);
console.log("Utilisateur : " + choixUtilisateur);
comparer (choixOrdi, choixUtilisateur);
// <--Cas d'égalité + var comparer--
var comparer = function(choix1, choix2) {
if(choix1 === choix2) {
return ("Egalité !");
}
    // <--1-choix la pierre vs les ciseaux--
    if (choix1 === "pierre"){
        if(choix2 === "ciseaux"){
            return ("pierre gagne !");
        }
    }
    
    // <--1b-choix les ciseaux vs la pierre--
    if (choix1 === "ciseaux"){
        if(choix2 === "pierre"){
            return ("pierre gagne !");
        }
    }
    
    // <--2-choix la feuille vs la pierre --
    if (choix1 === "feuille"){
        if(choix2 === "pierre"){
            return ("feuille gagne !");
        }
    }
    
    // <--2b-choix la pierre vs la feuille --
    if (choix1 === "pierre"){
        if(choix2 === "feuille"){
            return ("feuille gagne !");
        }
    }
    
    
    // <--3-choix les ciseaux vs la pierre--
    if (choix1 === "ciseaux"){
        if(choix2 === "pierre"){
              return ("pierre gagne !");
        }
    }
    
    // <--3b-choix la pierre vs les ciseaux--
    if (choix1 === "pierre"){
        if(choix2 === "ciseaux"){
            return ("pierre gagne !");
        }
    }
    
    // --4-choix les ciseaux vs la feuille--
    if (choix1 === "ciseaux"){
        if(choix2 === "feuille"){
            return ("ciseaux gagnent !");
        }
    }
    
    // --4b-choix la feuille vs les ciseaux --
    if (choix1 === "feuille"){
        if(choix2 === "ciseaux"){
            return ("ciseaux gagnent !");
        }
    }
};

#9

si mon codre peu vous aidez voila :wink:
var choixUtilisateur = prompt("Choisissez-vous pierre, feuille, ou ciseaux ?");
var choixOrdi = Math.random();
if (choixOrdi < 0.34) {
choixOrdi = "pierre";
} else if(choixOrdi <= 0.67) {
choixOrdi = "feuille";
} else {
choixOrdi = "ciseaux";
}
var comparer = function(choix1, choix2){
if(choix1 === choix2) {
return "Egalité !";
}

else if(choix1 === "pierre") {

if(choix2 === "cisceaux") {
    return "pierre gagne !";
}
else {
    return "feuille gagne !";
}

}
else if(choix1 === "feuille") {
if(choix2 === "pierre") {
return "feuille gange !";
}
else {
return "pierre gange !";
}
}
else if(choix1 === "cisceaux") {
if(choix2 === "pierre") {
return "pierre gagne !";
}
else {
return "cisceaux gagne !";
}
}
else if(choix1 !== "cisceaux, pierre, feuille") {
if (choix2 !== "cisceaux, pierre, feuille") {
return confirm("Vous devez ecrire pierre, feuille ou cisceaux !");
}
}
};
console.log("Utilisateur : " + choixUtilisateur);

console.log("Ordinateur : " + choixOrdi);
comparer(choixOrdi,choixUtilisateur);


#10

Thanks for your time, have a great holidays !


#11

Merci beaucoup pour ton ajout de code, je vais essayer si le tiens fonctionne !
Passe de bonne fêtes et meilleur vœux !


#12

Salut, si jamais ton problème persiste :

var comparer = function(choix1, choix2){
    if (choix1===choix2){
return "Egalité !"; }

else if(choix1 === "pierre") {

    if(choix2 === "ciseaux") {
        return "pierre gagne !"; }
    else {
        return "feuille gagne !";
    }

} }

De mon côté, ça marche nickel ! J'avais un peu le même problème que toi au départ mais je me suis rendu compte qu'il y avait l' } après Return Egalité en trop :smile:
Exemple :

var comparer = function(choix1, choix2){
    if (choix1===choix2){
return "Egalité !"; }
}

Tiens nous au courant !