lundi 22 février 2016

2D Arrays in If Loop will not Return Specified Boolean Value [duplicate]

This question already has an answer here:

I have a multi class program in which I'm trying to make winning conditions for. However when I attempt to compare the 2D array that contains an object, with another object of the same kind.

Here is a sample, I've tested the bare bones and the method does work, it's the if statements that do not, any help is very much appreciated.

(Yes I converted them to strings with the quotations, however the statement doesn't work either way)

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]+"" == o+"" && board [0][1]+"" == o+"" && board [0][2]+"" == o+"")//top horizontal row
    {
        return true;
    }
    else if(board [0][1]+"" == o+"" && board [1][1]+"" == o+"" && board [2][1]+"" == o+"")//mid horizontal row
    {
        return true;
    }
    else if(board [0][2]+"" == o+"" && board [1][2]+"" == o+"" && board [2][2]+"" == o+"")//bottom horizontal row
    {
        return true;
    }
    else if(board [0][0]+"" == o+"" && board [0][1]+"" == o+"" && board [0][2]+"" == o+"")//left vertical row
    {
        return true;
    }
    else if(board [1][0]+"" == o+"" && board [1][1]+"" == o+"" && board [1][2]+"" == o+"")//mid vertical row
    {
        return true;
    }
    else if(board [2][0]+"" == o+"" && board [2][1]+"" == o+"" && board [2][2]+"" == o+"")//right vertical row
    {
        return true;
    }
    else if(board [0][0]+"" == o+"" && board [1][1]+"" == o+"" && board [2][2]+"" == o+"")//declining diagonal row
    {
        return true;
    }
    else if(board [2][0]+"" == o+"" && board [1][1]+"" == o+"" && board [0][2]+"" == o+"")//rising diagonal row
    {
        return true;//                                                                    respectively the same for the lines below
    }
    //Above O wins, Below X wins
    else if(board [0][0]+"" == x+"" && board [1][0]+"" == x+"" && board [2][0]+"" == x+"")
    {
        return true;
    }
    else if(board [0][1]+"" == x+"" && board [1][1]+"" == x+"" && board [2][1]+"" == x+"")
    {
        return true;
    }
    else if(board [0][2]+"" == x+"" && board [1][2]+"" == x+"" && board [2][2]+"" == x+"")
    {
        return true;
    }
    else if(board [0][0]+"" == x+"" && board [0][1]+"" == x+"" && board [0][2]+"" == x+"")
    {
        return true;
    }
    else if(board [1][0]+"" == x+"" && board [1][1]+"" == x+"" && board [1][2]+"" == x+"")
    {
        return true;
    }
    else if(board [2][0]+"" == x+"" && board [2][1]+"" == x+"" && board [2][2]+"" == x+"")
    {
        return true;
    }
    else if(board [0][0]+"" == x+"" && board [1][1]+"" == x+"" && board [2][2]+"" == x+"")
    {
        return true;
    }
    else if(board [2][0]+"" == x+"" && board [1][1]+"" == x+"" && board [0][2]+"" == x+"")
    {
        return true;
    }
    else//if none of these are fulfilled
        return false;}

Aucun commentaire:

Enregistrer un commentaire