So I have been coding tic tac toe, but the issue is once one side gets 3, the function won t register and the code continues. Can anyone give me insight to why this is happening?
I ran the code expecting it to break once a winner is decided, but it still continues past the win condition. In the end of each of the win functions, I returned True and set the respective variables as True, but it seems it isn t registering the output of these functions because I printed the output of all once it was 3 in any and it returns True, but the if statement won t accept it for some reason.
board = [["-", "-","-"],["-","-","-"],["-","-","-"] ]
win = False
count = 0
aa = None
bb = None
def printboard():
print(board[0][0],"|", board[0][1],"|",board[0][2])
print("_", " _ ", " _ " )
print(board[1][0],"|", board[1][1],"|",board[1][2])
print("_", " _ ", " _ ")
print(board[2][0],"|", board[2][1],"|",board[2][2])
def row(board):
for i in board:
if i[0] == i[1] == i[2]:
if i[0] == "x":
aa = True
return True
if i[0] == "o":
bb = True
return True
return False
def column(board):
for j in range(0,3):
if board[0][j] == board[1][j] == board[2][j]:
if board[0][j] == "x":
aa = True
return True
if board[0][j] == "o":
bb = True
return True
return False
def diagonal(board):
if board[0][0] == board[1][1] == board[2][2]:
if board[0][0] == "x":
aa = True
return True
if board[0][0] == "o":
bb = True
return True
if board[0][2] == board[1][1] == board[2][0]:
if board[0][2] == "x":
aa = True
return True
if board[0][2] == "o":
bb = True
return True
return False
while count < 10 and win == False:
x1 = int(input("Choose row "))
y1 = int(input("Choose column "))
x2 = int(input("Choose row "))
y2 = int(input("Choose column "))
board[x1][y1] = "x"
board[x2][y2] = "o"
printboard()
row(board)
diagonal(board)
print(row(board))
print(column(board))
print(diagonal(board))
if row(board) is True or column(board) is True or diagonal(board) is True:
if aa == True:
print("Player 1 wins!")
win = True
break
if bb == True:
print("Player 2 wins!")
win = True
break
else:
continue
count += 1