java - 循环连接四个网格

标签 java

我正在从事 Connect Four 项目,但在获胜检查方面遇到了困难。我认为这与我在网格上循环的方式有关。它可以水平工作,但不能垂直工作,而且有点对角工作。

public boolean gameStatus(MyBoard gameBoard, int columnPosition, CellState gameToken) {
    int rowPosition = 0;

    for (int i = 0; i < gameBoard.getWidth(); i++)
        for (int j = 0; j < gameBoard.getHeight(); j++)
            if (gameBoard.get(i, columnPosition) != CellState.FREE)
                rowPosition = i;

    if (checkColumn(gameBoard, columnPosition, gameToken, rowPosition))
        return true;
}


public boolean checkColumn(MyBoard gameBoard, int columnPosition, CellState gameToken, int rowPosition) {
    int tokenCounter = 1;

    if ((rowPosition + 4) <= 6)
        for (int i = rowPosition + 1; i <= rowPosition + 3; i++)
            if (gameToken == gameBoard.get(i, columnPosition))
                tokenCounter++;
            else
                break;

    if (tokenCounter == 4)
        return true;

    return false;
}

最佳答案

我认为这只检查最后一行非空。

Java 不关心缩进,因此如果没有大括号,iffor 仅使用它们后面的语句。这意味着您的 if (checkColumn... 仅运行一次,而不是每列运行一次。

您可能想尝试类似的事情

public boolean gameStatus(MyBoard gameBoard, int columnPosition, CellState gameToken) { 
    int rowPosition = 0;
    for (int i = 0; i < gameBoard.getWidth(); i++) {
        for (int j = 0; j < gameBoard.getHeight(); j++) {
            if (gameBoard.get(i, columnPosition) != CellState.FREE) {
                rowPosition = i;
            }
        }
        if (checkColumn(gameBoard, columnPosition, gameToken, rowPosition)) {
            return true;
        }
    }

一般来说。我建议不要编写不带大括号的 ifforwhile 语句。它保存的两个字符不值得你可能不小心引入的错误

关于java - 循环连接四个网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50115201/

相关文章:

java - 使用 REST webservice 上传文件是个好主意吗?

java - Jasperreports 引擎 JRRuntimeException on report().show

java - 匹配电子邮件的 RegEx 也匹配 URL

java - 我在随机数猜谜游戏中遇到了 while 循环

java - 如何在内存中查找对象

JavaFX HTML 节点元素

java - JNI UnsatisfiedLinkError 依赖库

java - Hibernate、MySQL 和 Maven : am I losing my configuration?

Java正则表达式防止匹配特定关键字

java - 递归计算字符串java中的字符串