Java 连接四个垂直的赢家

Java 连接四个垂直的赢家,java,Java,由于某些原因,当内部四个循环运行完毕时,此方法不会将1添加到外部For循环中的col。我只能在col设置为的列中获得垂直连接四。例如,如果col等于2,计算机将只识别第2列中的垂直连接4。怎么了 public Player colWinner(){ for(int col = 0; col < grid[0].length; col++){ for(int row = 0; row < grid.length/2; row++){

由于某些原因,当内部四个循环运行完毕时,此方法不会将1添加到外部For循环中的col。我只能在col设置为的列中获得垂直连接四。例如,如果col等于2,计算机将只识别第2列中的垂直连接4。怎么了

public Player colWinner(){
        for(int col = 0; col < grid[0].length; col++){
            for(int row = 0; row < grid.length/2; row++){
                Player currP = getCell(row,col);
                if((currP == getCell(row + 1, col)) && (currP == getCell(row + 2, col)) && (currP == getCell(row + 3, col))){ 
                    return currP;
                }
                else{
                    continue;
                }
            }
            for(int row = grid.length/2; row < grid.length; row++){
                Player currP = getCell(row,col);
                if((currP == getCell(row - 1, col)) && (currP == getCell(row - 2, col)) && (currP == getCell(row - 3, col))){ 
                    return currP;
                }
                else{
                    continue;
                }
            }
        }
        return null;
    }
public Player colWinner(){
对于(int col=0;col
我认为您的代码允许4个垂直空序列。 需要添加
currP!=每个if语句都为空

public Player colWinner(){
    for(int col = 0; col < grid[0].length; col++){
        for(int row = 0; row < grid.length/2; row++){
            Player currP = getCell(row,col);
            if(currP != null && currP == getCell(row + 1, col) && currP == getCell(row + 2, col) && currP == getCell(row + 3, col)){ 
                return currP;
            }
        }
        for(int row = grid.length/2; row < grid.length; row++){
            Player currP = getCell(row,col);
            if(currP != null && currP == getCell(row - 1, col) && currP == getCell(row - 2, col) && currP == getCell(row - 3, col)){ 
                return currP;
            }
        }
    }
    return null;
}
public Player colWinner(){
对于(int col=0;col
这项计划要管理的游戏规则是什么?特别是,
colWinner
的目的是什么?这是游戏Connect Four的一种方法。colWinner是一种尝试在一列中找到四个部分的方法。好的,我在维基百科中找到了这个游戏,但是一个链接会很好。我认为“四个循环”应该是“for循环”!你是说
col++
执行不正确,是吗?您是否已在调试器中逐步完成此操作,并检查了执行循环控制前后的
col
值以及控制的位置?你希望
还能继续
做什么?我还没有在调试器中研究过这个方法,但现在我会。根据我的导师所说,Else continue将继续循环,并移动到下一行,继续检查该列中的每一部分,以查看是否存在连接四。但是如果您省略
Else continue
,您预计会发生什么?Monserrat:我建议现在有人建议您重新调试原始代码,留意saka所说的将会发生的事情:这将帮助你在将来自己发现这样的错误。天哪,谢谢你!!!有一次我加了咖喱=在这两个for循环中都为null,我可以在其他列中获得垂直优胜者。非常感谢你!感谢您的建议和所有令人敬畏的帮助@pjtrail@蒙塞拉特帕拉布里卡:很高兴能帮上忙。就上半场而言,你仍然需要考虑你的极限
网格长度/2
——问问自己一个获胜的四人可以从多高开始,以及在一个不同高度的棋盘上有什么意义<代码>网格。长度/2
并不总是正确的!看到这个答案让我觉得这个问题更有趣,因为我认为它说明了一种相对不寻常的特殊错误,一种对未填写条目的盲目性——所以我把这个问题投了赞成票。