Terminez le jeu Démineur de Google en utilisant ce script. Bibliothèques nécessaires : numpy , opencv2 , pyautogui .
Téléchargez ce projet à l'aide de cette commande :
https://github.com/EnriqueMoran/google-minesweeper-bot.git
Ensuite, installez les bibliothèques nécessaires à l'aide de la commande suivante :
pip install pyautogui opencv-python numpy
Une fois l'installation terminée, faites un clic droit sur le fichier minesweeper.py et modifiez-le avec IDLE. Ouvrez le jeu Google Mineweeper et assurez-vous que la fenêtre du jeu est complètement visible, puis cliquez sur Python IDLE et appuyez sur F5.
Remarque : La première fois que vous exécutez le script, une nouvelle fenêtre s'ouvrira et pourra être placée sur la fenêtre de jeu. Il suffit de la déplacer et de la redimensionner.
Important : Si vous devez abandonner l'exécution du script, placez la souris dans le coin supérieur gauche de votre écran.
A chaque déplacement une capture d'écran est prise et chaque cellule qui n'est pas verte est reconnue (cellule non inconnue).
Ensuite, chaque cellule est vérifiée pour placer un drapeau sur l'une de ses cellules adjacentes. L'algorithme utilisé est le suivant :
Si le nombre de cellules adjacentes marquées est inférieur au score de la cellule cochée et que le nombre de cellules adjacentes inconnues plus les cellules marquées est inférieur au score, placez alors un drapeau sur l'une des cellules adjacentes inconnues.
Si le nombre de cellules adjacentes signalées est égal au score et que le nombre de cellules adjacentes inconnues est supérieur à 0, cliquez sur l'une d'entre elles.
Si aucune des cellules n'est valide pour une action, une cellule inconnue aléatoire sera cliquée.
Une fois qu'il ne reste plus de drapeaux, le jeu est terminé et le script s'arrête. Si la partie est perdue en cliquant sur une cellule aléatoire, si la fenêtre de score est reconnue, le script s'arrêtera également.
Sur la version 1.0, les performances dépendent du paramètre de vitesse qui définit le temps pendant lequel le script attendra après avoir cliqué sur une cellule pour prendre une nouvelle capture d'écran.
Vitesse | Nº Jeux | Victoire/défaite facile | Victoire/défaite normale | Victoire/défaite difficile | Moyenne facile. Temps | Moy. normale. Temps | Moyenne difficile. Temps |
---|---|---|---|---|---|---|---|
0,05 | 10 | 9/1 | 5/5 | 3/7 | 27h55 | 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 |
Sur la version 1.2, la correspondance de modèles opencv2 n'est plus utilisée. Les scores sont obtenus à partir de la couleur de leurs pixels. Les performances de vitesse ont été améliorées dans les difficultés faciles et normales. L'ajout de règles à appliquer lorsqu'il faut cliquer au hasard est nécessaire.
Vitesse | Nº Jeux | Victoire/défaite facile | Victoire/défaite normale | Victoire/défaite difficile | Moyenne facile. Temps | Moy. normale. Temps | Moyenne difficile. Temps |
---|---|---|---|---|---|---|---|
0,015 | 10 | 8/2 | 4/6 | 0/10 | 11h25 | 42 | - |
0,05 | 10 | 7/3 | 5/5 | 1/9 | 11.28 | 44,6 | 113 |
Ajoutez des règles pour les clics aléatoires.