If循环中的2D数组不会返回指定的布尔值

时间:2016-02-22 13:45:39

标签: java class if-statement

我有一个多课程,我试图为其赢得胜利条件。但是,当我尝试将包含对象的2D数组与另一个同类对象进行比较时。

以下是一个示例,我已经测试了骨头,方法确实有效,但if语句没有,非常感谢任何帮助。

(是的,我将它们转换为带引号的字符串,但声明无论如何都不起作用)

public boolean winner()//Checks to see if someone has won.
{
    XO x = new XO("X");//creates the objects to mimic the players
    XO o = new XO("O");
    if((board [0][0]+"").equals(o+"") && (board [0][1]+"").equals(o+"") && (board [0][2]+"").equals(o+""))//top horizontal row
    {
        return true;
    }
    else if((board [0][1]+"").equals(o+"") && (board [1][1]+"").equals(o+"") && (board [2][1]+"").equals(o+""))//mid horizontal row
    {
        return true;
    }
    else if((board [0][2]+"").equals(o+"") && (board [1][2]+"").equals(o+"") && (board [2][2]+"").equals(o+""))//bottom horizontal row
    {
        return true;
    }
    else if((board [0][0]+"").equals(o+"") && (board [0][1]+"").equals(o+"") && (board [0][2]+"").equals(o+""))//left vertical row
    {
        return true;
    }
    else if((board [1][0]+"").equals(o+"") && (board [1][1]+"").equals(o+"") && (board [1][2]+"").equals(o+""))//mid vertical row
    {
        return true;
    }
    else if((board [2][0]+"").equals(o+"") && (board [2][1]+"").equals(o+"") && (board [2][2]+"").equals(o+""))//right vertical row
    {
        return true;
    }
    else if((board [0][0]+"").equals(o+"") && (board [1][1]+"").equals(o+"") && (board [2][2]+"").equals(o+""))//declining diagonal row
    {
        return true;
    }
    else if((board [2][0]+"").equals(o+"") && (board [1][1]+"").equals(o+"") && (board [0][2]+"").equals(o+""))//rising diagonal row
    {
        return true;//                                                                    respectively the same for the lines below
    }
    //Above O wins, Below X wins
    else if((board [0][0]+"").equals(x+"") && (board [0][1]+"").equals(x+"") && (board [0][2]+"").equals(x+""))//top horizontal row
    {
        return true;
    }
    else if((board [0][1]+"").equals(x+"") && (board [1][1]+"").equals(x+"") && (board [2][1]+"").equals(x+""))//mid horizontal row
    {
        return true;
    }
    else if((board [0][2]+"").equals(x+"") && (board [1][2]+"").equals(x+"") && (board [2][2]+"").equals(x+""))//bottom horizontal row
    {
        return true;
    }
    else if((board [0][0]+"").equals(x+"") && (board [0][1]+"").equals(x+"") && (board [0][2]+"").equals(x+""))//left vertical row
    {
        return true;
    }
    else if((board [1][0]+"").equals(x+"") && (board [1][1]+"").equals(x+"") && (board [1][2]+"").equals(x+""))//mid vertical row
    {
        return true;
    }
    else if((board [2][0]+"").equals(x+"") && (board [2][1]+"").equals(x+"") && (board [2][2]+"").equals(x+""))//right vertical row
    {
        return true;
    }
    else if((board [0][0]+"").equals(x+"") && (board [1][1]+"").equals(x+"") && (board [2][2]+"").equals(x+""))//declining diagonal row
    {
        return true;
    }
    else if((board [2][0]+"").equals(x+"") && (board [1][1]+"").equals(x+"") && (board [0][2]+"").equals(x+""))//rising diagonal row
    {
        return true;//                                                                    respectively the same for the lines below
    }
    else//if none of these are fulfilled
        return false;}

0 个答案:

没有答案