I am making a simple console tic tac toe game. But it isn't working how it is supposed to. If you place a mark tow in a row it declares the player winner. I don't know what's wrong. I searched the whole internet but didn't found anything.
win = True
tie = True
player = 1
Board = [1, 2, 3,
4, 5, 6,
7, 8, 9]
def display_Board():
print(f"| {Board[0]} | {Board[1]} | {Board[2]} |")
print(f"| {Board[3]} | {Board[4]} | {Board[5]} |")
print(f"| {Board[6]} | {Board[7]} | {Board[8]} |")
def play(m):
global player
try:
if player == 1:
x = Board.index(m)
Board[x] = "X"
player = 2
elif player == 2:
y = Board.index(m)
Board[y] = "Y"
player = 1
except ValueError:
print("You can't overwrite other players mark")
def Tie():
global player
if any(isinstance(j,int) for j in Board):
print(f"Player {player} turn")
return True
else:
print("It's a Tie")
return False
this is the Win function. Most of the problem Would be her
def Win():
if Board[0] and Board[1] and Board[2] == "X":
print("Player 1 Won")
return False
elif Board[3] and Board[4] and Board[5] == "X":
print("Player 1 Won")
return False
elif Board[6] and Board[7] and Board[8] == "X":
print("Player 1 Won")
return False
elif Board[0] and Board[3] and Board[6] == "X":
print("Player 1 Won")
return False
elif Board[1] and Board[4] and Board[7] == "X":
print("Player 1 Won")
return False
elif Board[2] and Board[5] and Board[8] == "X":
print("Player 1 Won")
return False
elif Board[0] and Board[4] and Board[8] == "X":
print("Player 1 Won")
return False
elif Board[2] and Board[4] and Board[6] == "X":
print("Player 1 Won")
return False
elif Board[0] and Board[1] and Board[2] == "Y":
print("Player 2 Won")
return False
elif Board[3] and Board[4] and Board[5] == "Y":
print("Player 2 Won")
return False
elif Board[6] and Board[7] and Board[8] == "Y":
print("Player 2 Won")
return False
elif Board[0] and Board[3] and Board[6] == "Y":
print("Player 2 Won")
return False
elif Board[1] and Board[4] and Board[7] == "Y":
print("Player 2 Won")
return False
elif Board[2] and Board[5] and Board[8] == "Y":
print("Player 2 Won")
return False
elif Board[0] and Board[4] and Board[8] == "Y":
print("Player 2 Won")
return False
elif Board[2] and Board[4] and Board[6] == "Y":
print("Player 2 Won")
return False
else:
return True
Here the main loop starts
print("Enter the respective digit to mark")
display_Board()
while win and tie:
play(int(input("Where you want to mark: ")))
display_Board()
tie = Tie()
win = Win()