Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

Required fields*

I'm having a problem with python in relation to tuples

I am trying to create a game (tic tac toe) and I have to create a board (called tab) using 3 tuples that each has 3 elements that represent a position on a line. A "X" is represented by the number 1, a "O" by -1 and an empty space by 0. I am trying to create a function that receives an argument (in this case the board is the argument) and says if it represents a valid board or not, however it always gives me the wrong answer (in this case says it's false) and I don't know why.

tab = ((1, -1, 0), (0, 0, 1), (0, -1, 1))

def eh_tabuleiro(tab):
    if len(tab) == 3:
        if len(tab[0]) == 3 and len(tab[1]) == 3 and len(tab[2]) == 3:
            if tab[0][0] or tab[0][1] or tab[0][2] or tab[1][0] or tab[1][1] or tab[1][2] or tab[2][0] or tab[2][1] or tab[2][2] != 1 or -1 or 0:
                return False
            else:
                return True           
            
        else:
            return False
    else:
        return False  

For a board to be valid it needs to be a tuple with three tuples and 3 elements inside each smaller tuple. If it has 2 elements or instead of 1/-1/0 has a "-1" or any other thing the function returns False. As you can see my board is correct and it says it is not. Can anyone help me?

Answer*

Cancel
0