Как написать крестики-нолики, чтобы компьютер перекрывал ходы Python

Прошу помощи у профессионалов. Решил сделать игру крестики-нолики на Python с возможностью выбрать уровень сложности компьютера. Сделал функцию, где компьютер просто рандомно ставит нолик(O), а вот сделать другую функцию, где если центр свободен, то он должен ходить туда и если есть два подряд крестика, то он должен перекрывать их, не получается никак. Помогите пожалуйста реализовать вторую функцию get_comp_coord2()

from random import randint
game_board = [[" "] * 3 for i in range(3)]

def draw_board(game_board):
    print(f"  0 1 2")
    for j in range(3):
        print(f"{j} {game_board[j][0]} {game_board[j][1]} {game_board[j][2]}")

def get_users_coord():
    while True:
        cords = input("Введите координаты").split()
        if len(cords) != 2:
            print("Вы ввели не 2 координаты!")
            continue
        x, y = cords
        if not (x.isdigit()) or not (y.isdigit()):
            print("Введите числа!")
            continue
        if int(x) > 2 or int(x) < 0 or int(y) > 2 or int(y) < 0:
            print("Координаты вне диапазона!")
            continue
        x, y = int(x), int(y)
        if game_board[x][y] != " ":
            print("Клетка занята!")
            continue
        return x, y

def check_win():
    win_coords = [((0, 0), (0, 1), (0, 2)), ((1, 0), (1, 1), (1, 2)), ((2, 0), (2, 1), (2, 2)),
                  ((0, 0), (1, 0), (2, 0)),
                  ((0, 1), (1, 1), (2, 1)), ((0, 2), (1, 2), (2, 2)), ((0, 0), (1, 1), (2, 2)),
                  ((0, 2), (1, 1), (2, 0))]
    for cor in win_coords:
        a = cor[0]
        b = cor[1]
        c = cor[2]
        if game_board[a[0]][a[1]] == game_board[b[0]][b[1]] == game_board[c[0]][c[1]] != " ":
            print(f"Выиграл {game_board[a[0]][a[1]]}!")
            return True
    return False

def get_user_char():
    print("Вы ходите X")
    user_char = "X"
    return user_char

def get_comp_char():
    comp_char = "O"
    return comp_char

def get_comp_coord1():
    x, y = randint(0, 2), randint(0, 2)
    while game_board[x][y] != " ":
        x, y = randint(0, 2), randint(0, 2)
    return x, y

def get_comp_coord2():
    x, y = randint(0, 2), randint(0, 2)
    if game_board[1][1] == " ":
        game_board[x][y] = game_board[1][1]
    return x, y


user_char = get_user_char()
comp_char = get_comp_char()

if user_char == "X":
    computer_char = "O"

step = 0
while True:
    draw_board(game_board)
    if step % 2 == 0:
        x, y = get_users_coord()
    else:
        x, y = get_comp_coord2()
    if step % 2 == 0:
        game_board[x][y] = user_char
    else:
        game_board[x][y] = comp_char
    step += 1
    if check_win():
        draw_board(game_board)
        break
    if step == 9:
        draw_board(game_board)
        print("Ничья")
        break

Ответы (0 шт):