Пройдите игру Google's Minesweeper, используя этот скрипт. Необходимые библиотеки: numpy , opencv2 , pyautogui .
Загрузите этот проект с помощью этой команды:
https://github.com/EnriqueMoran/google-minesweeper-bot.git
Далее установите необходимые библиотеки с помощью следующей команды:
pip install pyautogui opencv-python numpy
После завершения установки щелкните правой кнопкой мыши файл minesweeper.py и отредактируйте его с помощью IDLE. Откройте игру Google Minesweeper и убедитесь, что окно игры полностью видно, затем нажмите Python IDLE и нажмите F5.
Примечание. При первом запуске скрипта откроется новое окно, которое можно разместить поверх окна игры, просто выдвиньте его и измените его размер.
Важно: если вам нужно прервать выполнение сценария, поместите указатель мыши в левый верхний угол экрана.
При каждом ходе делается снимок экрана и распознается каждая незеленая клетка (неизвестная ячейка).
Далее каждая ячейка проверяется на предмет установки флажка на любой из соседних ячеек. Используемый алгоритм следующий:
Если количество помеченных соседних ячеек меньше, чем оценка проверенной ячейки, а количество неизвестных соседних ячеек плюс помеченных ячеек меньше, чем оценка, то поместите флаг на любую из неизвестных соседних ячеек.
Если количество отмеченных соседних ячеек равно баллу, а количество неизвестных соседних ячеек больше 0, то нажмите на любую из них.
Если ни одна из ячеек не подходит для какого-либо действия, будет выбрана случайная неизвестная ячейка.
Как только флагов больше не останется, игра завершается и скрипт останавливается. Если игра проиграна при нажатии на случайную ячейку, если распознано окно счета, скрипт тоже остановится.
В версии 1.0 производительность зависит от параметра скорости, который задает время, в течение которого скрипт будет ждать после щелчка по ячейке, чтобы сделать новый снимок экрана.
Скорость | Кол-во игр | Легкая победа/поражение | Обычная победа/поражение | Тяжелая победа/поражение | Легкое среднее Время | Нормальное Среднее Время | Жесткий средний Время |
---|---|---|---|---|---|---|---|
0,05 | 10 | 9/1 | 5/5 | 3/7 | 27.55 | 258,6 | 854 |
0,10 | 10 | 8/2 | 8/2 | 0/10 | 28,875 | 235,83 | - |
0,15 | 10 | 9/1 | 10/0 | 2/8 | 27,2 | 214,66 | 812,5 |
В версии 1.2 сопоставление шаблонов opencv2 больше не используется. Оценки получаются по цвету пикселей. Улучшены скоростные характеристики на простых и обычных сложностях. Необходимо добавить правила, которые будут применяться при случайном нажатии.
Скорость | Кол-во игр | Легкая победа/поражение | Обычная победа/поражение | Тяжелая победа/поражение | Легкое среднее Время | Нормальное Среднее Время | Жесткий средний Время |
---|---|---|---|---|---|---|---|
0,015 | 10 | 8/2 | 4/6 | 0/10 | 11.25 | 42 | - |
0,05 | 10 | 7/3 | 5/5 | 1/9 | 11.28 | 44,6 | 113 |
Добавьте правила для случайных кликов.