1. ホーム
  2. javascript

[解決済み] JavaScriptでじゃんけんぽん

2022-03-02 04:15:40

質問

初めてのゲーム(Rock Paper Sissors)を作っているところなのですが、「Rock Paper Sissors」ボタンをクリックすると、「Rock Paper Sissors」ボタンが表示されないという問題が発生しました。 ユーザチョイス シザース と、その コンピュータチョイス ロック の場合、プログラムは勝者をrockと返すことができません。 他の組み合わせの場合は、プログラムが勝者を返してくれるのですが。

ここに私のコードがあります。

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";
}

var compare = function(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 === "rock") {
        return "paper wins";
    } else {
        if(choice2 === "scissors") {
            return "scissors wins";
    }
}
if(choice1 === "scissors") {
    if(choice2 === "rock") {
        return "rock wins";
    } else {
        if(choice2 === "paper") {
            return "scissors wins";
        }
    }
}
}
};
console.log("User Choice: " + userChoice);
console.log("Computer Choice: " + computerChoice);
compare(userChoice, computerChoice);

解決方法は?

コードのインデントが不十分であったため、問題を確認できなかったと思われます。 適切なインデントが行われていれば、問題はクリアになります。

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

あなたの if (choice1 === "scissors") {if (choice1 === "paper") { . 中のコードに到達することはありません。