javascript - 在经常调用的函数中获取粘性随机数(Javascript)

标签 javascript random

我正在制作一个猜数字机,并得到《html5 游戏编程傻瓜书》一书的支持。我陷入了调用随机数的函数。

我试图将其放在函数之外,但这不起作用,因为当没有回合时数字不会刷新。我还尝试将它放在我的第一个 if 语句中,因此它只会在第一次被调用,但这会产生未定义的错误。谁能帮助我?

代码:

var turns = 3;

function Guess() {

    var randNum = Math.round(Math.random()*100);

    var input = document.getElementById('input').value;
    var output = document.getElementById('output');

    if(turns == 3) {
        if(input == randNum) {
            output.innerHTML = 'Congratulations! Thats the right answer!';
            turns = 4;
        } else if(input > randNum) {
            output.innerHTML = 'The number is lower!';
        } else {
            output.innerHTML = 'The number is higher!';
        }
        turns--;
    } else if(turns == 2) {
        if(input == randNum) {
            output.innerHTML = 'Congratulations! Thats the right answer!';
            turns = 4;
        } else if(input > randNum) {
            output.innerHTML = 'The number is lower!';
        } else {
            output.innerHTML = 'The number is higher!';
        }
        turns--;
    } else if(turns == 1) {
        if(input == randNum) {
            output.innerHTML = 'Congratulations! Thats the right answer!';
            turns = 3;
        } else if(input > randNum) {
            output.innerHTML = 'The number is '+randNum+'. You lost!';
            turns = 3;
        } else {
            output.innerHTML = 'The number is '+randNum+'. You lost!';
            turns = 3;
        }
    }
}
PS。我的代码也没有真正优化。有人有优化我的代码的技巧吗?非常感谢!

最佳答案

我花了一些时间才弄清楚您在这里问的问题,但我认为这就是您正在寻找的答案......

在函数外部添加此行

var turns = 3;
var randNum = Math.round(Math.random()*100); // This one

function Guess() {
    // ...

然后在函数末尾:

    } else {
        output.innerHTML = 'The number is '+randNum+'. You lost!';
        turns = 3;
    }
    randNum = Math.round(Math.random()*100); // This one
}

现在,您在加载文档时设置一个随机数,并将其作为函数可以访问的全局变量。用户尝试猜测 1 到 100 之间的数字 3 次(相当不合理的挑战),然后当他们用完“回合”时,randNum 会重置为新的随机数,以便用户继续猜测。

关于javascript - 在经常调用的函数中获取粘性随机数(Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22306587/

相关文章:

javascript - 如何在鼠标悬停时从占位符中删除图像

javascript - 当带有视频的背景 div 完成加载时,显示整个加载的 div

javascript - 在javascript变量中存储PHP变量的值

javascript - URL 中的字符串替换

c# - c# 中两个整数中的至少一个可随机整除

PHP random_int 播种

javascript - 使用 Ajax 从页面加载 div

python - 从数据框中随机选择小时

c# - C#随机类的问题

java - 如何在具有随机大小和随机坐标的画圆内绘制字母?