首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >connect 4算法引发异常

connect 4算法引发异常
EN

Stack Overflow用户
提问于 2016-11-26 02:48:02
回答 1查看 59关注 0票数 0

因此,我在检查是否存在垂直连接4的代码中不断遇到问题。我的代码的前言:电路板有6行7列,变量player1保存被用作芯片的字符的值,而playerID只保存获得连接4的人的值。

代码语言:javascript
复制
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;
}
EN

回答 1

Stack Overflow用户

发布于 2016-11-26 03:11:59

一些更干净的代码

代码语言:javascript
复制
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
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40810891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档