Tic tac toe算法5x5表,连续4个

时间:2016-12-11 07:17:15

标签: algorithm artificial-intelligence tic-tac-toe

我被要求制作tictactoe算法,但是我不太明白如何检查每一行或每列是否可以成为结束状态。

我尝试使用5x5然而我只能用5行进行,所以我希望如果结束状态需要连续4个,我有办法让我这样做。我还没有考虑对角线,所以我可以专注于列和行检查。

我的检查器看起来像这样

var B = this.board;

    //check rows
    for(var i = 0; i <= 20; i = i + 5) {
        if(B[i] !== "E" && B[i] === B[i + 1] && B[i + 1] == B[i + 2] && B[i + 2] == B[i + 3] && B[i + 3] == B[i + 4]) {
            this.result = B[i] + "-won"; //update the state result
            return true;
        }
    }

    //check columns
    for(var i = 0; i <= 4 ; i++) {
        if(B[i] !== "E" && B[i] === B[i + 5] && B[i + 5] === B[i + 10] && B[i + 10] === B[i + 15])  && B[i +15] === B[i + 20]{
            this.result = B[i] + "-won"; //update the state result
            return true;
        }
    }

    var available = this.emptyCells();
    if(available.length == 0) {
        //the game is draw
        this.result = "draw"; //update the state result
        return true;
    }
    else {
        return false;
    } 

1 个答案:

答案 0 :(得分:0)

您可以迭代顶行(从0到1,包含)和所有列,并检查此列中从给定行开始并向下的4个单元格序列是否包含相同的元素。

您可以通过迭代最左边的列(再次,从0到1)和所有行并检查顺序是否正确来对行执行相同的操作。