Этот скрипт автоматизирует решение головоломок в игре Digits на веб-сайте New York Times с использованием Selenium и пользовательского решателя.
Перед запуском скрипта убедитесь, что у вас установлены следующие компоненты:
- Python 3.x
- Selenium
- Chrome WebDriver
- Папка с решателем
-
Клонируйте репозиторий или загрузите скрипт.
-
Установите необходимые зависимости с помощью pip:
pip install selenium
-
Скачайте исполняемый файл Chrome WebDriver и добавьте его расположение в переменную среды PATH вашей системы.
Конечно! Вот документация для интерфейса командной строки:
solver/util/solve_auto [-h] [[-start S] [-level L] | [-daily]]
-
-h, --help: Показать сообщение справки и выйти. -
-start S, --startLevel S: Указать начальный уровень для решения головоломок. Значение должно быть целым числом. -
-level L, --levelToPlay L: Указать общее количество уровней для прохождения. Значение должно быть целым числом. -
-daily, --dailyOnly: Решать только ежедневные головоломки. Если этот флаг указан, инструмент будет игнорировать параметры--startLevelи--levelToPlayи будет решать только ежедневную головоломку.
-
Решить 10 уровней, начиная с уровня 5:
python solver/util/solve_auto --startLevel 5 --levelToPlay 10 -
Решить только ежедневные головоломки:
python solver/util/solve_auto --dailyOnly
Примечание: Если аргументы не указаны, инструмент будет использовать настройки по умолчанию (начиная с уровня 1 до уровня 20).
Скрипт автоматизирует следующие действия:
-
Переход на веб-сайт игры Digits на веб-сайте New York Times.
-
Изменение времени игры с помощью скрипта
TimeShift.js(только в solveMany.py). -
Нажатие кнопки "Play" для начала головоломки.
-
Решение каждой головоломки путем выполнения необходимых нажатий на кнопки с числами и операторами.
-
Обработка случаев, к
огда скрипт застревает, например, когда кнопки или элементы не доступны для нажатия.
-
Переход к следующей головоломке или возвращение на экран выбора головоломки при завершении набора головоломок.
-
Печать текущего номера головоломки и даты для справки (только в solveMany.py).
Если вы хотите изменить или расширить функциональность скрипта, вы можете изучить следующие функции:
-
click_element(element_id, error_message): Обрабатывает нажатие на элемент, идентифицируемый по его ID. Если элемент недоступен для нажатия, пользователю предлагается ввести команду. -
combine_numbers(step_list, buttons): Обрабатывает объединение чисел путем выполнения необходимых нажатий на кнопки с числами и обновления состояния кнопок. -
next_puzzle_button_click(): Обрабатывает нажатие кнопки "Next Puzzle" для перехода к следующей головоломке. -
back_to_puzzles_button_click(): Обрабатывает нажатие кнопки "Back to Puzzles" при завершении набора головоломок.
Не стесняйтесь изменять код в соответствии с вашими конкретными требованиями.
Этот скрипт предоставляется по лицензии MIT.
Обратите внимание, что в документации предполагается, что вы уже настроили необходимую среду и зависимости, как указано в разделе "Подготовка".