def display_board(board):
print('-------------')
for row in board:
print('|', end='')
for cell in row:
print(f' {cell} |', end='')
print('\n-------------')
def check_win(board, player):
# Check rows
for row in board:
if all(cell == player for cell in row):
return True
# Check columns
for col in range(3):
if all(board[row][col] == player for row in range(3)):
return True
# Check diagonals
if all(board[i][i] == player for i in range(3)):
return True
if all(board[i][2-i] == player for i in range(3)):
return True
return False
def main():
board = [[' ' for _ in range(3)] for _ in range(3)]
current_player = 'X'
while True:
display_board(board)
row = int(input(f"Player {current_player}, enter row (1-3): ")) - 1
col = int(input(f"Player {current_player}, enter column (1-3): ")) - 1
if board[row][col] == ' ':
board[row][col] = current_player
if check_win(board, current_player):
display_board(board)
print(f"Player {current_player} wins!")
break
if all(cell != ' ' for row in board for cell in row):
display_board(board)
print("It's a tie!")
break
current_player = 'O' if current_player == 'X' else 'X'
else:
print("That spot is already taken. Try again.")
if __name__ == "__main__":
main()