我在here之前发了帖,但我没有说清楚,也没有尝试,但是现在我尝试了,但没有成功。我正在制作具有得分的四连冠游戏,但是当有人连接四种颜色时,它并没有结束。网格有8列以上,当有人连接四种颜色时,win func返回true,但是当我添加第5种颜色时,即使它不是连续的,也返回true。我认为看代码更容易理解:
function horizontalWin(row, col) {
var no = [];
var playervalue = avatar[turn];
var count = 0;
for (var i = 0; i < GRID_SIZE; i++) {
var slot = document.getElementById('tbl').rows[row].cells[i].innerHTML;
var slo = document.getElementById('tbl').rows[row].cells[i].getAttribute("class");
if (slot == playervalue && no.includes(slo)==false) {
count++;
no.push(slo);
if (count >=4) {return true;}
}
else {count = 0; no = [];}
}
return false;
}
我想要有4种连接的颜色->分数= 1,8->分数= 2但现在是4-> 1,5-> 2,6-> 3 .... < / p>
答案 0 :(得分:1)
如果您的目标是使五行不赢(也就是说,仅**完全*四行就赢了),那么您在到达{ {1}}(您当前停止是因为您进行了count == 4
)。
有关逻辑更改,请参见return true
注释,以及其他一些建议:
***