Completa el juego Buscaminas de Google usando este script. Bibliotecas necesarias: numpy , opencv2 , pyautogui .
Descargue este proyecto usando este comando:
https://github.com/EnriqueMoran/google-minesweeper-bot.git
A continuación, instale las bibliotecas necesarias usando el siguiente comando:
pip install pyautogui opencv-python numpy
Una vez que se complete la instalación, haga clic derecho en el archivo minesweeper.py y edítelo con IDLE. Abra el juego Buscaminas de Google y asegúrese de que la ventana del juego esté completamente visible, luego haga clic en Python IDLE y presione F5.
Nota: La primera vez que ejecutes el script se abrirá una nueva ventana que podría colocarse sobre la ventana del juego, simplemente muévela y cambia su tamaño.
Importante: si necesita cancelar la ejecución del script, coloque el mouse en la esquina superior izquierda de la pantalla.
En cada movimiento se toma una captura de pantalla y se reconoce cada celda que no es verde (celda no desconocida).
A continuación, se verifica que cada celda coloque una bandera en cualquiera de sus celdas adyacentes. El algoritmo utilizado es el siguiente:
Si el número de celdas adyacentes marcadas es menor que la puntuación de la celda marcada y el número de celdas adyacentes desconocidas más las celdas marcadas es menor que la puntuación, entonces coloque una bandera en cualquiera de las celdas adyacentes desconocidas.
Si el número de celdas adyacentes marcadas es igual a la puntuación y el número de celdas adyacentes desconocidas es mayor que 0, haga clic en cualquiera de ellas.
Si ninguna de las celdas es válida para alguna acción, se hará clic en una celda desconocida aleatoria.
Una vez que no quedan más banderas, el juego finaliza y el guión se detiene. Si el juego se pierde al hacer clic en una celda aleatoria, si se reconoce la ventana de puntuación, el script también se detendrá.
En la versión 1.0, el rendimiento depende del parámetro de velocidad que establece el tiempo que esperará el script después de hacer clic en una celda para tomar una nueva captura de pantalla.
Velocidad | Nº Juegos | Fácil victoria/derrota | Victoria/derrota normal | Victoria/derrota dura | Promedio fácil Tiempo | Promedio normal Tiempo | Promedio duro Tiempo |
---|---|---|---|---|---|---|---|
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 |
En v1.2, ya no se utiliza la coincidencia de plantillas opencv2. Las puntuaciones se obtienen a partir del color de sus píxeles. Se ha mejorado el rendimiento de la velocidad en dificultades fáciles y normales. Es necesario agregar reglas para aplicar cuando sea necesario hacer clic aleatoriamente.
Velocidad | Nº Juegos | Fácil victoria/derrota | Victoria/derrota normal | Victoria/derrota dura | Promedio fácil Tiempo | Promedio normal Tiempo | Promedio duro Tiempo |
---|---|---|---|---|---|---|---|
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 |
Agregue reglas para clics aleatorios.