为连接4算法抛出例外



因此,我一直遇到我的代码问题,以检查是否有连接4的垂直连接。我的代码的序言:板有6行和7列,变量player1保持字符的值被用作芯片,并且playerId只是拥有获得连接的人的值4。

public int verticalWin() {
    int playerID = 0;
    for (int x = 0; x < board[x].length; x++) {
        int count = 1;
        for (int y = board.length-2; y >= 0; y--) {
            if (board[y][x] == board[y+1][x]) {
                count++;
                if (count == 4) {
                    if (board[y][x] == player1) {
                        playerID = 1;
                    } else {
                        playerID = 2;
                    }
                }
            } else {
                count = 1;
            }
        }
    }
    return playerID;
}

我一直遇到的问题是,一个例外java.lang.ArrayIndexOutOfBoundsException: 6一直在发生,我认为这是第一行,但我似乎找不到问题。

一些清洁器代码

boolean isWinnerOnColumn(int playerID, int column) {
    int count = 0;
    for (int row = 0; row < 6; row++) {
        count = (board[row][column] == playerID) ? (count + 1) : 0;
        if (count == 4){
            return true;
        }
    }
    return false;
}
public int verticalWin() {
     for (int column = 0; column < 7; column++) {
         if (isWinnerOnColumn(1, column) {
            return 1;
         }
         if (isWinnerOnColumn(2, column) {
            return 2;
         }
     }
     return 0; // no winner
}

最新更新