Javascript JS for循环无法正常工作,正在尝试通过变量数组进行循环
为了好玩,我尝试用Javascript编写骰子游戏Yahtzee。我有一个基本的界面设置了骰子的图像。关于我的问题,Yahtzee需要了解的一些规则是: 有5个骰子 3次掷骰后,玩家必须选择一个得分类别来得分 以下是不起作用的代码:Javascript JS for循环无法正常工作,正在尝试通过变量数组进行循环,javascript,arrays,for-loop,Javascript,Arrays,For Loop,为了好玩,我尝试用Javascript编写骰子游戏Yahtzee。我有一个基本的界面设置了骰子的图像。关于我的问题,Yahtzee需要了解的一些规则是: 有5个骰子 3次掷骰后,玩家必须选择一个得分类别来得分 以下是不起作用的代码: var die1 = Math.floor((Math.random() * 6) + 1), die2 = Math.floor((Math.random() * 6) + 1), die3 = Math.floor((Math.random() * 6) + 1
var die1 = Math.floor((Math.random() * 6) + 1),
die2 = Math.floor((Math.random() * 6) + 1),
die3 = Math.floor((Math.random() * 6) + 1),
die4 = Math.floor((Math.random() * 6) + 1),
die5 = Math.floor((Math.random() * 6) + 1),
dieArray = ["", die1, die2, die3, die4, die5],
optionResult1 = 0;
document.getElementById("option1").onclick = function() {
if (rollCount == 3 & option1 == false) {
for (i=0; i < 5; i++) {
i++;
if (dieArray[i] == 1) {
optionResult1++;
}
if (i = 5) {
option1 = true;
document.getElementById("optionResult1").innerHTML = optionResult1;
console.log("finished");
}
}
console.log(optionResult1);
} else if (rollCount != 3) {
document.getElementById("dialogue").innerHTML = "You cannot pick this yet because you have not rolled 3 times.";
} else if (option1 == true) {
document.getElementById("dialogue").innerHTML = "You cannot pick this because you have already used this category.";
}
}
假设是第三卷,且之前未选择此积分类别,会发生什么情况:
for循环应该通过dieArray,对于每个为1的die,向optionResult1变量添加1。如果五个骰子中有三个一,那么optionResult1应该是3,以此类推
相反,它通常会比它应该的值小1。即使我能在控制台中看到数组清楚地显示三个一,它也会给我2,有时甚至0。你看到的代码有什么问题吗?文档中显然还有其他代码,但我相当确定问题出在这个函数中。抱歉,如果这让人困惑,如果你玩过Yahtzee,可能更容易理解
我知道我可以用5个if语句来做同样的事情,但我正在努力从中学习,我很有信心这会奏效,我一定是做错了什么。谢谢 if i=5{应该是if i==5{…对于i=0;i<5;i++{应该是var i=0;i<5;i++{为什么要增加i两次?为什么在die数组中有一个空字符串作为元素零?是的,正如@DustinHoffner所说,你需要确保使用==或者更好地使用===启动你的开发工具,告诉我们你遇到了什么错误。我已经按照@DustinHoffner的建议更改了代码,并删除了循环中的i++i have no idea我为什么这么做,没有直截了当地思考…现在,我似乎得到了optionResult1的正确值,但I==5语句中的代码似乎根本没有触发…这是应该显示分数并关闭分数类别的部分。知道为什么吗?