Page 1 sur 1

[R] Boucle dans une boucle ?

Posté : mer. 22 sept. 2010 21:01
par Jerome
Coucou,

J'ai ce bout de code la :

Code : Tout sélectionner

#include <ImageSearch.au3>

$x1=0
$y1=0

While 1
    $resultfuse = _ImageSearch("Set.bmp",0,$x1,$y1,0)
    If $resultfuse=1 Then
        _Funct1()
    EndIf

    $resultcible = _ImageSearch("Ico.bmp",0,$x1,$y1,0)
    If $resultfuse=1 Then
        _Funct2()
    EndIf

    $resultchain = _ImageSearch("Verif.bmp",0,$x1,$y1,0)
    If $resultfuse=1 Then
        _Funct3()
    EndIf
       ; Autre actions dans le code après la fonction apelé
    Sleep(2000) 
WEnd
 

Je fait une recherche sur 3 images à un moment, et j'aurait voulut savoir savoir comment écrire une boucle qui va faire une recherche de ses 3 images pendant 4 secondes par exemple, puis si une image est trouvé ou non au bout de ses 4 secondes, je sort de ma boucle et exécute une fonction suivant l'image trouvé (0 ou 1 image étant les possibilités en sortit de boucle).



Merci de votre aide, Jérôme.

Re: [..] Boucle dans une boucle ?

Posté : jeu. 23 sept. 2010 01:05
par Tlem
Schématiquement :

Code : Tout sélectionner

    Boucle
        Initialisation Timer
        Recherche image 1
            Si image 1 trouvée variable X=1

        Recherche image 2
            Si image 2 trouvée variable X=1
        
        Recherche image 3
            Si image 3 trouvée variable X=1
            
        Si Timer > 4 secondes alors on sort de la boucle
    Fin de boucle

Re: [..] Boucle dans une boucle ?

Posté : jeu. 23 sept. 2010 07:24
par Jerome
Coucou Tlem,

C'est exactement ce que je m'était dit.
Je vais regarder pour l'histoire du Timer.

Mais quelle type de boucle utiliser pour ce cas précis ?
While 1 -> Wend ?




Jérôme

Re: [..] Boucle dans une boucle ?

Posté : jeu. 23 sept. 2010 08:09
par Tlem
Jerome a écrit :While 1 -> Wend ?
Oui, très bien.
Mais en fait vous n'êtes pas limité à la boucle. Le tout est qu'elle dure plus de quatre secondes. ;)

Donc vous pouvez aussi faire un :

Code : Tout sélectionner

Do
...
Until $x >= 4
Évidement, $x doit correspondre au timer. ;)