我正在制作一个猜数字机,并得到《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/