Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

It return no error but I sense something wrong in codeacademy's console. It return single string - "rock", "paper" or "scissors". I couldn't detect what's wrong.

var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
    computerChoice = "rock";
} else if(computerChoice <= 0.67) {
    computerChoice = "paper";
} else {
    computerChoice = "scissors";
}

function compare(choice1, choice2){
    if(choice1 == choice2) return "The result is a tie!";

    if(choice1 == "rock"){
        if(choice2 =="scissors") return "rock wins" 
        else return "paper wins";
    }

        if(choice1 == "paper"){
        if(choice2 =="scissors") return "scissors wins" 
        else return "paper wins";
    }

        if(choice1 == "scissors"){
        if(choice2 =="paper") return "scissors wins" 
        else return "rock wins";
    }

    compare(userChoice, computerChoice);

}

Any bug in the logic and the program flow?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
184 views
Welcome To Ask or Share your Answers For Others

1 Answer

var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
    computerChoice = "rock";
} else if(computerChoice <= 0.67) {
    computerChoice = "paper";
} else {
    computerChoice = "scissors";
}

function compare(choice1, choice2){
    if(choice1 == choice2) return "The result is a tie!";

    if(choice1 == "rock"){
        if(choice2 =="scissors") return "rock wins" 
        else return "paper wins";
    }

    if(choice1 == "paper"){
        if(choice2 =="scissors") return "scissors wins" 
        else return "paper wins";
    }

    if(choice1 == "scissors"){
        if(choice2 =="paper") return "scissors wins" 
        else return "rock wins";
    }
}

compare(userChoice, computerChoice);

You were calling compare() inside the definition of compare.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...