Javascript 如何只生成一次随机数,并重用其输出?
我从Javascript开始学习编程,我的导师让我们做一个随机掷骰子,一个简单的Math.ceil(6*Math.random()) 我试着稍微玩弄一下,然后判断结果。所以,如果你掷7,你赢了,其他任何一个你都输了。最终的结果是, “你打了一个7分 你赢了!” 然而,我试图通过以下方式来实现:Javascript 如何只生成一次随机数,并重用其输出?,javascript,node.js,random,Javascript,Node.js,Random,我从Javascript开始学习编程,我的导师让我们做一个随机掷骰子,一个简单的Math.ceil(6*Math.random()) 我试着稍微玩弄一下,然后判断结果。所以,如果你掷7,你赢了,其他任何一个你都输了。最终的结果是, “你打了一个7分 你赢了!” 然而,我试图通过以下方式来实现: console.log("You rolled a: " + diceSum); if (dicesum() == 7) { console.log("You win!"); } else { conso
console.log("You rolled a: " + diceSum);
if (dicesum() == 7) {
console.log("You win!");
} else {
console.log("Aw... you lose. Better luck next time");
}
diceSum()函数每次求值,所以我可能会得到“yourolled a:7”和“Aw…You lose”,因为第一个骰子是7,但当if语句出现时,diceSum就不同了
我如何生成一个像掷骰子一样的随机数,然后反复使用它的值
这是我当前的代码(因为我试图显示这些值,所以我知道它是否返回正确答案,所以代码远远超出了必要的范围):
将其保存到变量:
var sum = diceSum();
console.log("You rolled a " + sum);
if (sum == 7) {
console.log(winMsg);
} else {
console.log(loseMsg);
}
var sum = diceSum();
//Outputs
//show total sum to compare with message below
console.log(sum);
//Return a message stating the result
console.log("You rolled a " + sum)
//View true false status to compare with message returned below
console.log(sum == 7);
//If diceSum is a 7, give winning message, otherwise give losing message
if (sum == 7){
console.log(winMsg);
} else {
console.log(loseMsg);
}
或:
将结果放入变量中,然后使用变量:
var sum = diceSum();
console.log("You rolled a " + sum);
if (sum == 7) {
console.log(winMsg);
} else {
console.log(loseMsg);
}
var sum = diceSum();
//Outputs
//show total sum to compare with message below
console.log(sum);
//Return a message stating the result
console.log("You rolled a " + sum)
//View true false status to compare with message returned below
console.log(sum == 7);
//If diceSum is a 7, give winning message, otherwise give losing message
if (sum == 7){
console.log(winMsg);
} else {
console.log(loseMsg);
}
顺便说一下,计算随机数的方法是错误的。将定义为返回一个与逻辑分离的0值。例如,有一个函数可以滚动模具并存储结果,还有一个函数可以返回结果。或者,一个新对象具有以下调用:启动“骰子事务”、“向运行总和添加新骰子卷”、“返回运行总和”和“结束事务”。您显示的代码过于集成。把它分成逻辑部分,然后把这些部分组合起来——可能然后依次组合这些部分。我相信你要找的是一个变量。
function getDieRoll() {
return Math.floor(6 * Math.random()) + 1;
};