gpt4 book ai didi

javascript - 如何只生成一次随机数,并重用其输出?

转载 作者:行者123 更新时间:2023-12-03 12:11:06 24 4
gpt4 key购买 nike

我正在从 Javascript 开始学习编程,我的老师让我们随机掷骰子,一个简单的 Math.ceil(6*Math.random())

我试图稍微游戏化它并判断结果。所以,如果你掷出 7,你就赢了,任何其他的掷骰你都输了。最终的结果是,

“你掷出了:7你赢了!”

但是,我尝试通过大约说来实现:

console.log("You rolled a: " + diceSum);
if (dicesum() == 7) {
console.log("You win!");
} else {
console.log("Aw... you lose. Better luck next time");

}

diceSum() 函数每次都会进行计算,因此我可能会得到“你掷出了 a: 7”和“噢...你输了”,因为第一次掷出的是 7,但是当 if 语句出现时, diceSum 是不同的东西。

如何生成一个像掷骰子一样的随机数,然后一遍又一遍地重复使用它的值?

这是我当前的代码(远远超出了必要的范围,因为我正在尝试显示这些值,以便我知道它是否返回正确的答案):

//Functions
//Generate a random single roll of a dice
var getDieRoll = function() {
return Math.ceil(6*Math.random());
};

//Sum up two dice rolls
var diceSum = function() {
var firstDie = getDieRoll();
var secondDie = getDieRoll();
return firstDie+secondDie;
};
//

//Variables
//Check to see if total sum of the roll is 7
var winMsg = "Winner!"
var loseMsg = "Aw... you lose. Better luck next time."
//

//Outputs
//show total sum to compare with message below
console.log(diceSum())

//Return a message stating the result
console.log("You rolled a " + diceSum())

//View true false status to compare with message returned below
console.log(diceSum()==7)

//If diceSum is a 7, give winning message, otherwise give losing message
if (diceSum()==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);
}
<小时/>

顺便说一句,计算随机数的方式是错误的。 random method被定义为返回一个 0 <= n < 1 的值,即它可以为零,但永远不能为一。

如果使用Math.ceil,效果是结果偶尔会为零,并且获得 6 的机会比其他数字略小。

使用Math.floor代替:

function getDieRoll() {
return Math.floor(6 * Math.random()) + 1;
};

关于javascript - 如何只生成一次随机数,并重用其输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24960345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com