我试图构建一个简单的脚本,从1-6生成2个随机数(如骰子),然后将结果循环100次,每当其中一个场景为真时,将+1添加到表示的变量中每个选项中发生方案的次数,而不是在警报中显示结果。它似乎不起作用。哪里出错了?谢谢!
var diceOne = Math.random();
var calcDiceOne = (diceOne * 6) + 1;
calcDiceOne = Math.floor(calcDiceOne);
var diceTwo = Math.random();
var calcDiceTwo = (diceTwo * 6) + 1;
calcDiceTwo = Math.floor(calcDiceTwo);
var playerOneWon = 0;
var playerTwoWon = 0;
var Tie = 0;
for (var i = 0; i < 100; i++) {
if (calcDiceOne(i) > calcDiceTwo(i)) {
playerOneWon = playerOneWon++;
}
else if (calcDiceOne(i) < calcDiceTwo(i) {
playerTwoWon = playerTwoWon++;
}
else if (calcDiceOne(i) === calcDiceTwo(i)) {
Tie = Tie++;
}
}
alert(playerOneWon , playerTwoWon , Tie)
答案 0 :(得分:0)
您的代码存在多个问题。
)
:else if (calcDiceOne(i) < calcDiceTwo(i) {
calcDiceOne
,calcDiceTwo
是数字变量,而不是函数。你应该简单地在循环中移动随机化。playerTwoWon = playerTwoWon++;
什么也没做。 playerTwoWon++
将返回当时playerTwoWon
的任何内容,然后在内部递增它。然后将其设置回原始值。只需使用playerTwoWon++
或playerTwoWon = playerTwoWon + 1
。见下面的修订代码:
var playerOneWon = 0;
var playerTwoWon = 0;
var Tie = 0;
for (var i = 0; i < 100; i++) {
var diceOne = Math.random();
var calcDiceOne = (diceOne * 6) + 1;
calcDiceOne = Math.floor(calcDiceOne);
var diceTwo = Math.random();
var calcDiceTwo = (diceTwo * 6) + 1;
calcDiceTwo = Math.floor(calcDiceTwo);
if (calcDiceOne > calcDiceTwo) {
playerOneWon++;
}
else if (calcDiceOne < calcDiceTwo) {
playerTwoWon++;
}
else if (calcDiceOne === calcDiceTwo) {
Tie++;
}
}
alert(playerOneWon + " " + playerTwoWon + " " + Tie)