簡體   English   中英

用JavaScript構建“石頭,剪刀,剪刀”

[英]Build “rock, paper, scissors” in JavaScript

這是代碼。 建造“石頭,紙,剪刀”

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";
}
console.log("Computer: " + computerChoice);
var compare = function(choice1,choice2) {
if (choice1 === choice2) {
    return "The result is a tie!"
}
else if (choice1 === "rock") {
    if (choice2 === "scissors") {
        return "rock wins"
    }
    else {
        return "paper wins"
    }
}     compare(userChoice,computerChoice); //I forget to add it. Now I add it.

我不明白為什么需要添加else { return "paper wins" }

===運算符是javascript中的嚴格相等運算符。 有問題的if語句正在對choice1和字符串文字"rock" 如果該答案為true,則執行下一個if語句,程序檢查一下choice2等於"scissors" 如果這個說法是正確的,那么它將返回"rock wins"因為眾所周知,搖滾勝過剪刀。

如果choice1"rock" ,並choice2不是( else"scissors" ,然后choice2可能要么被"paper""rock" 由於沒有平局, choice2不能是"rock" ,所以choice2"paper" ,而"paper"勝過"rock" ,因此"paper wins"

編輯

由於return語句會在以下情況下立即退出函數

    if (choice2 === "scissors") {
        return "rock wins" // <-- quit the function
    }
    // <-- if you got here it is not true that (choice2 === "scissors")
    return "paper wins"

這意味着你可以避開else ,只是return "paper wins"

我不明白為什么需要添加else {return“ paper wins”}

這是因為您對此游戲有3種不同的情況(假設我選擇搖滾):

  1. 對手選擇岩石=>抽簽
  2. 對手選擇剪刀=>我贏了
  3. 對手選擇紙=>對手獲勝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM