Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接四行Java代码不工作_Java - Fatal编程技术网

连接四行Java代码不工作

连接四行Java代码不工作,java,Java,我需要完成我制作的这个连接四的游戏。似乎因为某种原因,我不知道这些行不起作用。这是我的行代码。当我运行代码时,在一行中得到4后,游戏不会停止,但当我在一列或对角中得到4时,游戏会停止。所有其他可能性都可以使用这种格式。下面是我的专栏的一个例子。这项工作: public boolean win_col() { int xTemp = x; int yTemp = y; int win = 0; while (xTemp != 6) { if (A[x

我需要完成我制作的这个连接四的游戏。似乎因为某种原因,我不知道这些行不起作用。这是我的行代码。当我运行代码时,在一行中得到4后,游戏不会停止,但当我在一列或对角中得到4时,游戏会停止。所有其他可能性都可以使用这种格式。下面是我的专栏的一个例子。这项工作:

public boolean win_col() {
    int xTemp = x;
    int yTemp = y;
    int win = 0;
    while (xTemp != 6) {
        if (A[xTemp][yTemp] == cod) {
            win ++;
            xTemp ++;
        }
        else
            break;

        if (win == 4) {
            return true;
        }
    }

    return false;
}
这就是我试图对我的行所做的

public boolean win_row() {
    int xTemp = x;
    int yTemp = y;
    int win = 0;
    while (yTemp != 0) {
        if (A[xTemp][yTemp] == cod) {
                win ++;
                yTemp --;
        }
        else 
            break;
        if (win == 4) {
            return true;
        }
    }
    yTemp = y + 1;
    while (yTemp != 7) {
        if (A[xTemp][yTemp] == cod) {
            win ++;
            yTemp ++;
        }
        else 
            break;
        if (win == 4) {
            return true;
        }
    }
    return false;
}

我一直在这样做,我的排不起作用。在我的程序中,除了行以外,其他一切都可以工作。救命

我仍然不明白您是如何检查win场景的,因此这里有一个简单的方法,我可以在不使用IDE调试器的情况下进行调试,您似乎没有太多的使用经验

在每个状态下,添加一个
System.out.println
,查看代码是否实际按其应有的方式运行。我会做类似的事情

public boolean win_row() {
    int xTemp = x;
    int yTemp = y;
    int win = 0;
    while (yTemp != 0) {
        if (A[xTemp][yTemp] == cod) {
                win ++;
                yTemp --;
                System.out.println("Going Left: Matched");
        }
        else {
            System.out.println("Going Left: Not Matched");
            break;
        }
        if (win == 4) {
            return true;
        }
    }
    yTemp = y + 1;
    while (yTemp != 7) {
        if (A[xTemp][yTemp] == cod) {
            win ++;
            yTemp ++;
            System.out.println("Going Right: Matched");
        }
        else {
            System.out.println("Going Right: Not Matched");
            break;
        }
        if (win == 4) {
            return true;
        }
    }
    return false;
}

您还可以使用
System.out.println
跟踪所有变量,以查看它是否在每一个状态下都以应有的方式递增/递减。

您的代码没有任何缩进,这使得所有变量都左对齐,几乎无法读取、理解和调试。请重新格式化您发布的代码,给它适当的缩进,通常每个块4个空格,并确保同一块上的所有代码都在相同的缩进级别。非常感谢您在这方面的合作,这将有助于您及时得到合理的答复。如果您需要我们的帮助,请让我们各让一半。不要让我们走到你站的地方。像上面所说的那样格式化代码,并详细说明行不工作是什么意思,因为这太模糊了。告诉我你们是否需要更多的细节。使用调试器逐步检查代码,答案应该相当清楚。可能是一个由一个关闭的错误或类似的错误。@user3685648如果你“感觉”你的算法有问题,也许调试它可以把“感觉”变成事实。。。问随机的互联网程序员出了什么问题,并不能代替调试自己的代码!这是所有人给我的最好的。谢谢你的提示。如果你想更仔细地了解我的比赛,我可以给你。这是相当简单,虽然有点不完整,但我不是要求你采取它,并为我修复它。无论如何谢谢你