Javascript 仅使用Math.random生成的第一个数字

Javascript 仅使用Math.random生成的第一个数字,javascript,Javascript,我是一名学生,正在用JavaScript创建一个三猜游戏。我的游戏不能正常运行,我相信数学。random在游戏的每个阶段都会生成一个新的数字。如果有人帮我为变量randomNumber定义一个数字,我将不胜感激 下面是JavaScript: function game() { var randomNumber = Math.floor(Math.random()*11); var userGuess = prompt ("Guess what number I'm thinki

我是一名学生,正在用JavaScript创建一个三猜游戏。我的游戏不能正常运行,我相信数学。random在游戏的每个阶段都会生成一个新的数字。如果有人帮我为变量
randomNumber
定义一个数字,我将不胜感激

下面是JavaScript:

function game() 
{
    var randomNumber = Math.floor(Math.random()*11);
    var userGuess = prompt ("Guess what number I'm thinking of? (It's between 0 & 10)");

    if (userGuess === randomNumber) 
    {
        alert ("Good Guess, you must be psychic!");
    } 
    else 
    {
        var userGuess2 = prompt ("Dohhh! You got it wrong. You have 2 more chances.");
    }

    if (userGuess2 === randomNumber) 
    {
        alert ("Good Guess, you must be psychic!");
    } 
    else 
    {
        var userGuess3 = prompt ("Dohhh! You got it wrong. You have 1 more chance.");
    }

    if (userGuess3 === randomNumber) 
    {
        alert ("Good Guess, you must be psychic!");
    } 
    else 
    {
        alert ("Bad luck. The number was: " + randomNumber);
    }
}

prompt
返回一个字符串。您正在使用严格相等运算符,
==
,将字符串与数字进行比较。他们永远不会平等

使用抽象相等运算符,
=
,或在与严格相等运算符进行比较之前将字符串转换为数字


此外,您的函数应该在正确猜测后返回
,而不是提示更多猜测

这里有一个关于代码清理版本的建议:

function playGame(guesses)
{
    // By default, give the player 3 guesses.
    guesses = guesses || 3;

    var randomNumber = Math.floor(Math.random()*11);
    var userGuess = prompt("Guess what number I'm thinking of? (It's between 0 & 10)");

    // Repeat the following logic whenever the user guesses incorrectly.
    while (userGuess !== randomNumber.toString())
    {
        --guesses;
        if (guesses === 0)
        {
            alert("Bad luck. The number was: " + randomNumber);
            return false;
        }

        userGuess = prompt("Dohhh! You got it wrong. You have " + guesses + " more chance(s).");
    }

    alert("Good Guess, you must be psychic!");
    return true;
}

请注意,它现在更灵活了(您可以给用户一个可配置的猜测次数),同时还减少了代码重复:不再重复相同的逻辑块(有微小的差异),实际上只有一点逻辑可以重复任意多次。

Java与Javascript无关。标签已删除。一个标签供“始终使用严格平等”专家思考。:-)纳比特谢谢,达格·纳比特。现在可以了。你救了我,让我不会因为这个小障碍而发疯!没问题。我还建议对每个猜测重复使用
userGuess
;没有理由对每个猜测使用单独的变量,因为你不需要旧的猜测。谢谢你,丹!语法非常优雅,虽然它包含了许多我在学习中没有遇到的元素,但我甚至都理解它。慷慨和优雅总是美丽的。。。谢谢