Загрузка данных


import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 1. Настройки подключения к открытой Opera GX через порт отладки
options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

try:
    # 2. Подключаемся к браузеру
    driver = webdriver.Chrome(options=options)
    print("Успешное подключение к Opera GX!\n")
except Exception as e:
    print("Ошибка подключения! Убедитесь, что Opera GX запущен с флагом --remote-debugging-port=9222")
    print(f"Детали ошибки: {e}")
    exit()

def get_live_board():
    """Считывание текущей матрицы доски из движка шашек."""
    return driver.execute_script("return checkers.engine.getField();")

def print_board(board):
    """Красивый вывод доски в консоль."""
    print("\n" + "=" * 25)
    print("   0  1  2  3  4  5  6  7")
    for idx, row in enumerate(board):
        print(f"{idx} {row}")
    print("=" * 25)

# 3. Бесконечный цикл для отслеживания доски в реальном времени
print("Начало отслеживания доски... (Нажмите Ctrl+C в консоли, чтобы остановить)")

try:
    last_board = None
    while True:
        try:
            current_board = get_live_board()
            
            # Выводим доску, только если она изменилась (сделан ход)
            if current_board != last_board:
                print("\n Обнаружено изменение на доске!")
                print_board(current_board)
                last_board = current_board
                
        except Exception as e:
            print("Не удалось прочитать доску. Проверьте, открыта ли вкладка с шашками.")
        
        # Пауза перед следующей проверкой (в секундах)
        time.sleep(2)

except KeyboardInterrupt:
    print("\nОтслеживание остановлено пользователем.")