繁体   English   中英

基本的JavaScript剪刀布游戏无法正常工作

[英]Basic JavaScript Rock-Paper-Scissors game not working properly

我正在使用的Rock-Paper-Scissors基本JavaScript版本需要一些帮助。 我今天才开始学习,如果可能的话,我希望代码尽可能完整。

我遇到的主要问题是循环。 尽管我将“再次”设置为“否”(通过提示),它仍然继续。 另外,计算机似乎总是选择Rock ...我感觉自己只是缺少一些简单的东西:

<html>
<script type="text/javascript">
    var myChoice = "";
    var compChoice = "";
    var again;
    while (again = "yes")
        {
        myChoice = prompt("Do you choose rock, paper or scissors?");
        compChoice = Math.random();
            if (compChoice < 0.33)
                {
                compChoice = "rock";
                }
            else if(compChoice < 0.67)
                {
                compChoice = "paper";
                }
            else
                {
                compChoice = "scissors";
                }
        if (compChoice = myChoice)
            {
            alert("It's a tie!");
            again = prompt("Would you like to play again?(yes/no)");
            }
        else if (compChoice = "rock")
            {
            if(myChoice = "scissors")
                {
                alert("You lose!");
                again = prompt("Would you like to play again?(yes/no)");
                }
            else if (myChoice = "paper")
                {
                alert("You win!");
                again = prompt("Would you like to play again?(yes/no)");
                }
            }
        else if (compChoice = "paper")
            {
            if (myChoice = "rock")
                {
                alert("You lose!");
                again = prompt("Would you like to play again?(yes/no)");
                }
            else if (myChoice = "scissors")
                {
                alert("You win!");
                again = prompt("Would you like to play again?(yes/no)");
                }
            }
        else if (compChoice = "scissors")
            {
            if (myChoice = "rock")
                {
                alert("You win!");
                again = prompt("Would you like to play again?(yes/no)");
                }
            else if (myChoice = "paper")
                {
                alert("You lose!");
                again = prompt("Would you like to play again?(yes/no)");
                }
            }
        };
</script>
</html>

您在while语句中使用=而不是== ,并且在所有if语句中也使用相同

=是赋值运算符,而==是比较运算符

var myChoice = "";
var compChoice = "";
var again;
do 
{
    myChoice = prompt("Do you choose rock, paper or scissors?");
    compChoice = Math.random();
    if (compChoice < 0.33)
    {
        compChoice == "rock";
    }
    else if(compChoice < 0.67)
    {
        compChoice = "paper";
    }
    else
    {
        compChoice == "scissors";
    }
    if (compChoice == myChoice)
    {
        alert("It's a tie!");
    }
    else if (compChoice == "rock")
    {
        if(myChoice == "scissors")
        {
            alert("You lose!");
        }
        else if (myChoice == "paper")
        {
            alert("You win!");
        }
    }
    else if (compChoice == "paper")
    {
        if (myChoice == "rock")
        {
            alert("You lose!");
        }
        else if (myChoice == "scissors")
        {
            alert("You win!");
        }
    }
    else if (compChoice == "scissors")
    {
        if (myChoice == "rock")
        {
            alert("You win!");
        }
        else if (myChoice == "paper")
        {
            alert("You lose!");
        }
    }
    again = prompt("Would you like to play again?(yes/no)");

}while (again == "yes");

演示: 小提琴

一个主要问题是您要分配值,而不是在多个位置比较值。

a = 2 // assigns a to value 2, and evaluates to true
a == 2 // compares a to 2, only evaluates to true if a has value 2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM