Now how do i use the return to determine a winner. I use 8 of these statements for each of the possible winning possibilities. This ends the game after the first move, why and what would work?
if(grid[1][1].equals(grid[1][2]) && grid[1][2].equals(grid[1][3]))
{
done = true;//makes game over by making done true
}
//later returns done
Throws away the result, the z inside of test is in a local scope. You want