Ce projet a pour but de poser une base pour permettre le développement d'un bot pour le jeu clash royal.
Le programme fonctionne avec différents objets discutant entre eux selon le graphique suivant:
Les différents objets ont les objectifs suivant:
-Windows Capture : Enregistrer la fenêtre de jeu
-Screen analyse : renvoie l'état du jeu correspond à une capture
-Screen UI : créer une interface pour voir l'état et le jeu en cours
-Bot_ia : qui choisis une action en fonction de l'état
-Controller : Effectue l'action demandé en cliquant aux endroits désiré sur le jeu
Pour récupérer la fenêtre de jeu sur ordinateur on passe par un émulateur pour Windows et Mac.
Pour Linux, il faut brancher le smartphone à l'ordinateur pour utiliser scrcpy. (Website-Scrcpy) L'utilisation de scrcpy demande une étape d'initialisation sur le téléphone puisque qu'il faut activer le débogage USB. (Tuto activation débogage usb)
Pour faire tourner ce programme il faut avoir installer les dépendances suivantes :
pip install sys pynput time cv2 numpy math pygame os ultralytics matplotlib
Il faut aussi installer PyTorch à l'aide de la ligne de commande trouvable sur ce site en indiquant sa configuration
pour Linux il faut rajouter les commandes suivantes :
pip install scrcpy-client
sudo apt install adb
pour windows et mac:
pip install pygetwindow mss
Avant le premier lancement il faut indiquer le chemin du dossier use_function dans le fichier use_fonction.configuration.p2p.py sans oublier de rajouter / à la fin
L'application devrait réussir à fonctionner au premier lancement cependant certaine partie de comparaison pixel par pixel pour évaluer les cartes disponibles, l'état des tours ainsi que la quantité d'elixir disponible risque de demander une initialisation plus poussé.
La classification des cartes, de l'état des tours et de la quantité d'elixir ce fait pour des comparaison pixel par pixel dans des zones d'intérêts selectionnées. Il faut donc indiquer les zones dans le fichier use_fonction.configuration.p2p.py, ce dernier sert aussi à indiquer les chemins des précédents réseaux.
Pour créer les images pour les comparaisons p2p, nous avons le code vignette_creation.py et pour trouver les ROI nous avons vignette_find_roi.py du dossier vignette_creation
- Étienne-Thédore PRIN - Website