# создаем функцию is_solved которая принимает доску board размером 3 на 3
def is_solved(board):
    # сохраняем все возможные линии победы: строки, столбцы и две диагонали
    lines = [
        # три строки
        [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]]
    ]

    # перебираем все линии через цикл for
    for line in lines:
        # если все три клетки равны 1 значит победил X
        if line[0] == 1 and line[1] == 1 and line[2] == 1:
            # возвращаем 1
            return 1
        # если все три клетки равны 2 значит победил O
        if line[0] == 2 and line[1] == 2 and line[2] == 2:
            # возвращаем 2
            return 2

    # перебираем все клетки доски чтобы проверить есть ли пустые
    for row in board:
        for cell in row:
            # если нашли пустую клетку значит игра не закончена
            if cell == 0:
                # возвращаем -1
                return -1

    # если победителя нет и пустых клеток нет значит ничья
    return 0