如何使此功能正常工作?

时间:2020-04-11 13:57:31

标签: javascript arrays

我在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>

1 个答案:

答案 0 :(得分:1)

如果您的目标是使五行不赢(也就是说,仅**完全*四行就赢了),那么您在到达{ {1}}(您当前停止是因为您进行了count == 4)。

有关逻辑更改,请参见return true注释,以及其他一些建议:

***