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Отслеживание остановлено пользователем.")