java - 如何修改数组中的后续点

标签 java arrays

因此,对于我正在做的这个 pset(对于 Candy Crush 克隆),我必须编写一个方法来检查所选点所在的棋盘行中是否有任何可能的匹配项。找到的方法将检查所选点的右侧,并返回所选点的匹配点数组。在给定的代码中,getRowBool​​s 函数应该生成一个带有 truefalse 的 boolean 数组,具体取决于点是否与所选点相同。然后,该方法将找到所选点之后 true 的长度,然后该长度应确定新点数组的长度。接下来,该方法应该将所有相关点放置到新数组中。但是,我不太明白如何以有效的方式修改点值。

public static Point[] buildPossibleMatchRow(Point p, Board b) {

    int x = p.x;
    int y = p.y;
    boolean[] matches = b.getRowBools(new Point(x,y));

    int amtcorrectx = 0;
    for (int i=0; i < matches.length; i++)
    {
        if (matches[i]) {
            amtcorrectx++;
        }
    }
    Point[] returnVals = new Point[amtcorrectx];

    returnVals[0] = p;

    for (int i=0; i < returnVals.length; i++)
    {
        x++;
    }

    return returnVals;
}

这是我到目前为止的代码,但我确信最后的 for 循环有问题。我有什么遗漏的吗?

最佳答案

我不太明白你的问题,但是看看你的代码,也许你想完成这样的事情?

public static Point[] buildPossibleMatchRow(Point p, Board b) {
    int x = p.x;
    int y = p.y;
    boolean[] matches = b.getRowBools(new Point(x,y));

    int amountCorrect = 0;
    for (int i=0; i < matches.length; i++) {
        if (matches[i])
            amountCorrect++;
    }

    Point[] result = new Point[amountCorrect];

    for (int i = 0; i < result.length; i++)
        result[i] = new Point(x + i, y);

    return returnVals;
}

关于java - 如何修改数组中的后续点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27307505/

相关文章:

javascript - 将 {Object} 的嵌套 [Array] 转换为 > {Object} | JSON文件

java - 递归地对数组中的整数求和

java - weblogic 10.3.5 抛出 nullPointerException

java - 无法通过在线判断中的所有测试用例

java - 自动售货机程序及打印阵列

c++ - 指向成员函数的指针数组 : make it work

java - Java中的二维字符串数组排序

java - 通过标签设置和获取 fragment 始终返回 null

java - 仅从 Maven 测试调用 init 方法失败 ested 异常为 java.lang.UnsupportedOperationException

c++ - 排列数组,使一个数组中的最大元素数更大