Bot pour le jeu Park Soccer
Date de publication : 03/10/2006
Par
Guillaume Duriaud (Page personnelle)
Exemple d'un programme Bot minimaliste qui joue au jeu Park Soccer
I. Prérequis
II. Introduction
III. Explication du code
IV. Source
V. Téléchargement
I. Prérequis
Système d'exploitation: Windows
Langage: Python
Bibliothèque: pyHook, pyWin32
II. Introduction
Ce programme va permettre à l'ordinateur de jouer tout seul au jeu Park Soccer. Park Soccer est un petit jeu
qui consiste simplement à jongler avec une balle de football à l'aide de la souris.
Mon objectif était simplement d'arriver à faire jouer l'ordinateur et au vue du jeu, il s'est avéré que la force
brute suffisait. Je me suis contenter du minimum, à savoir programmer l'IA (si on peut appeler cela une IA). Vous
devez donc au préalable lancer le jeu, ne pas le mettre en pleine écran puis bien positionner la fenêtre en haut à
gauche de l'écran de votre ordinateur. Comme le programme Python contrôle la souris, il est important que la
fenêtre du jeu soit au premier plan et bien positionnée, sinon le programme risque de cliquer avec la souris en
dehors de la fenêtre de jeu. Une fois cela fait, vous pouvez donc exécuter le fichier Parksoccer.pyw
Le jeu étant aussi sur Internet (vous n'aurez pas de mal à le trouver), vous pouvez aussi utilisez ce lien pour
tester le programme en modifiant au préalable les valeurs de parcours de la souris.
III. Explication du code
Le programme va se contenter de déplacer la souris de gauche à droite en cliquant à chaque fois à une vitesse suffisante
pour toucher à chaque passage au moins une fois le ballon.
La bibliothèque pyWin32 va nous permettre de contrôler la souris. La fonction win32api.SetCursorPos(x, y)
positionne le curseur de la souris sur le pixel (x,y) et la fonction win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,100,100,0)
permet d'envoyer l'évènement de l'appui sur le bouton gauche de la souris.
Les valeurs de déplacement et du timer ont été définies après expérimentation. Suivant la puissance de votre ordinateur et
la taille de la fenêtre du jeu, vous devrez peut-être modifier ces valeurs.
La bibliothèque pyHook permet d'intercepter les évènements clavier et souris et nous sera utile pour
stopper le programme quand on appuiera sur n'importe quelle touche du clavier.
IV. Source
Parksoccerbot.pyw |
import win32api
import win32con
import pyHook
import pythoncom
import time
import sys
import threading
__version__ = (0 , 2 , 0 )
__build__ = (0 , 0 )
__date__ = (2006 , 5 , 15 )
__author__ = (' Guillaume ' , ' Duriaud ' )
def OnKeyboardEvent (event):
sys.exit ()
def MyThread ():
hm = pyHook.HookManager ()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard ()
pythoncom.PumpMessages ()
i= 0
a = threading.Thread (target = MyThread)
a.start ()
while True :
time.sleep (0 .005 )
win32api.SetCursorPos ((30 + ((40 * i) % 500 ),350 - min (270 , (30 * (i / 200 ))) ))
win32api.mouse_event (win32con.MOUSEEVENTF_LEFTDOWN,100 ,100 ,0 )
i+ = 1
|
V. Téléchargement
Copyright © 2006 Guillaume Duriaud.
Aucune reproduction, même partielle, ne peut être faite
de ce site ni de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à
trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.