コードアカデミーのコースに従う初心者として、私はロックペーパーはさみのゲームを構築する問題に遭遇しました。未定義のロックペーパーはさみのゲームを返す初心者のJavascript関数
プログラム全体を含む2つの関数を作成しましたが、2つの選択肢が異なる場合は正常に動作しますが、選択肢が同じで、なぜ理解できないのかは不明です。
選択肢が結ばれていると、新しい選択肢が異なるまで割り当てられ続け、次に異なる選択肢に対してcompare関数が呼び出され、勝利結果が返されます。
コードを修正したいのですが、コード全体を書き直すのではなく、コードカルチャーでこの演習を終えましたが、私は2つの異なる方法でそれをやろうとしています含まれる関数。あなたは再帰呼び出しの結果を返す必要が
おかげ
var makeChoices = function() {
userChoice = "";
computerChoice = "";
userChoice = prompt("Do you choose rock, paper or scissors?");
computerChoice = Math.random();
if (computerChoice < 0.34) {
computerChoice = "rock";
} else if(computerChoice <= 0.67) {
computerChoice = "paper";
} else {
computerChoice = "scissors";
}
console.log("Computer: " + computerChoice + " " + "User: " + userChoice);
};
var compare = function(choice1, choice2) {
if (choice1 === choice2) {
makeChoices();
compare(userChoice, computerChoice);
}
else if (choice1 === "rock") {
if (choice2 === "scissors") {
return "rock wins";
}
else {
return "paper wins";
}
}
else if (choice1 === "paper") {
if (choice2 === "rock") {
return "paper wins";
}
else {
return "scissors wins";
}
}
else if (choice1 === "scissors") {
if (choice2 === "rock") {
return "rock wins";
}
else {
return "scissors wins";
}
}
else {
return "invalid choice by user";
}
};
makeChoices();
compare (userChoice, computerChoice);
私は誰かからDamonが言ったように理由を知っていますが、return文はありませんが、なぜcompare関数が答えを返してくれるのかは分かりません。 誰もがこれを私が理解できる方法で説明するのを助けることができますか?ありがとう:) –
私の答えの下の応答を参照してください:) – Damon