Untitled

 avatar
unknown
plain_text
a year ago
1.6 kB
5
Indexable
def print_board(board):
    for row in board:
        print(" | ".join(row))
        print("-" * 5)

def check_winner(board, player):
    win_conditions = [
        [board[0][0], board[0][1], board[0][2]],
        [board[1][0], board[1][1], board[1][2]],
        [board[2][0], board[2][1], board[2][2]],
        [board[0][0], board[1][0], board[2][0]],
        [board[0][1], board[1][1], board[2][1]],
        [board[0][2], board[1][2], board[2][2]],
        [board[0][0], board[1][1], board[2][2]],
        [board[0][2], board[1][1], board[2][0]],
    ]
    if [player, player, player] in win_conditions:
        return True
    return False

def tic_tac_toe():
    board = [[" " for _ in range(3)] for _ in range(3)]
    current_player = "X"
    moves = 0

    while moves < 9:
        print_board(board)
        try:
            row, col = map(int, input(f"Player {current_player}, enter row and column to place your {current_player}: ").split())
            if board[row][col] == " ":
                board[row][col] = current_player
                if check_winner(board, current_player):
                    print_board(board)
                    print(f"Player {current_player} wins!")
                    return
                current_player = "O" if current_player == "X" else "X"
                moves += 1
            else:
                print("This spot is already taken.")
        except (IndexError, ValueError):
            print("Please enter row and column as two numbers between 0 and 2.")

    print_board(board)
    print("It's a tie!")

if __name__ == "__main__":
    tic_tac_toe()
Editor is loading...
Leave a Comment