Voici le début du scripts, mais il y a un problème quand je répond "bonjour" il revient au début...
[..] Scripts pour "discuter avec l'ordi"
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[..] Scripts pour "discuter avec l'ordi"
Bonjour, j'aimerai faire une sorte de robot avec qui ont pourrait discuter virtuellement.
Voici le début du scripts, mais il y a un problème quand je répond "bonjour" il revient au début...
Voici le début du scripts, mais il y a un problème quand je répond "bonjour" il revient au début...
► Afficher le texte
-
tolf
- Niveau 7

- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [DEMANDE] Scripts pour "discuter avec l'ordi"
1- Editez votre titre en mettant une balise appropriée.
2- Lisez cette page : http://www.autoitscript.fr/forum/viewto ... f=35&t=595
3- Pour la présentation de votre code, je vous conseille d'utiliser CTRL+T dans SciTE pour mettre les bons espaces et rendre le code plus lisible.
4- Pourquoi initialisez vous deux fois $bLoop au début ?
5- Vous devez réarranger vos conditions (d'où l'intérêt de CTRL+T pour y voir clair ^^) :Sinon, vous pouvez utiliser ExitLoop pour sortir de la boucle directement sans utiliser de variable $bLoop.
2- Lisez cette page : http://www.autoitscript.fr/forum/viewto ... f=35&t=595
3- Pour la présentation de votre code, je vous conseille d'utiliser CTRL+T dans SciTE pour mettre les bons espaces et rendre le code plus lisible.
4- Pourquoi initialisez vous deux fois $bLoop au début ?
5- Vous devez réarranger vos conditions (d'où l'intérêt de CTRL+T pour y voir clair ^^) :
Code : Tout sélectionner
If $text = "Bonjour" Or $text = "Salut !" Then
$sLoop = 0
Else
MsgBox ...
EndIfRe: [DEMANDE] Scripts pour "discuter avec l'ordi"
Merci beaucoup à votre réponse, cela m'était très utile, est, désolé pour le post...
Re: [DEMANDE] Scripts pour "discuter avec l'ordi"
Pour le même sujet, j'ai un autre problème quand je veut proposer 2 types de réponse, une positive, et une négative... voici ce que le code donne (avec le bug) :
PS : difficile de s'y retrouver...
A chaque fois, a la fin, quand je dit "non" il me dit "cool alors" et quand je dit oui, il ne fait rien
► Afficher le texte
A chaque fois, a la fin, quand je dit "non" il me dit "cool alors" et quand je dit oui, il ne fait rien
-
ani
- Niveau 11

- Messages : 1826
- Enregistré le : lun. 23 juil. 2007 12:31
- Localisation : Bureau
- Status : Hors ligne
Re: [DEMANDE] Scripts pour "discuter avec l'ordi"
Bonjour
En faite les msgbox se trouve en dehors des conditions, il est normal que çà ne fonctionne pas comme vous le vouliez
if....elseif...endif
si....sinonsi...fin
bonne continuation.
En faite les msgbox se trouve en dehors des conditions, il est normal que çà ne fonctionne pas comme vous le vouliez
if....elseif...endif
si....sinonsi...fin
Code : Tout sélectionner
While $bloop = 1
$text = InputBox("Rob-auto", "Sa va ?")
If $text = "oué" Or $text = "ouai" Or $text = "oui" Or $text = "trop" Or $text = "bien" Or $text = "sa va" Or $text = "a fond" Then
MsgBox(0, "Rob-auto", "Cool alors")
$sLoop = 0
ElseIf $text = "non" Or $text = "pas du tout" Or $text = "pas trop" Or $text = "non" Or $text = "bof" Or $text = "snirf" Or $text = "triste" Then
MsgBox(0, "Rob-auto", "Dommage...")
$sLoop = 0
EndIf
$bloop = 0
WEndRe: [..] Scripts pour "discuter avec l'ordi"
Et j'ai un dernier problème (encore ?!) car, quand je lance le script et que je répond à la 1ere question, il me dit sa : Line 6 If @error=1 then Error: too many "else" statements for matching "if" statement. sa veut dire, je croit, qu'il y a trop de "Else" pour pas assez de "If" non ? Bon, voici le code
► Afficher le texte
-
ani
- Niveau 11

- Messages : 1826
- Enregistré le : lun. 23 juil. 2007 12:31
- Localisation : Bureau
- Status : Hors ligne
Re: [..] Scripts pour "discuter avec l'ordi"
l'inputbox nous dit
Failure: Returns "" (blank string) and sets @error as follows:
@Error 0 = The string returned is valid.
1 = The Cancel button was pushed.
2 = The Timeout time was reached.
3 = The InputBox failed to open. This is usually caused by bad arguments.
Vous indiquez if @error = 1 then (le 1 c'est si on appuie sur cancel)
Si y a une erreur alors action fin de condition
Ensuite
Si le texte correspond au mot clé alors action, Sinon message je ne comprend pas, fin de condition
l'erreur que vous retourne autoit, dit simplement qui y a un problème avec la condition (if..else...endif)
Failure: Returns "" (blank string) and sets @error as follows:
@Error 0 = The string returned is valid.
1 = The Cancel button was pushed.
2 = The Timeout time was reached.
3 = The InputBox failed to open. This is usually caused by bad arguments.
Vous indiquez if @error = 1 then (le 1 c'est si on appuie sur cancel)
Si y a une erreur alors action fin de condition
Code : Tout sélectionner
If @error then
msgbox(0,"titre","message")
exit
EndifSi le texte correspond au mot clé alors action, Sinon message je ne comprend pas, fin de condition
Code : Tout sélectionner
If $text = "Bonjour" Or $text = "Salut" Or $text = "lu" Or $text = "yo" Or $text = "yolvuuk" Or $text = "slt" Or $text = "salu" Or $text = "yolvuk" Then
$sLoop = 0
MsgBox(0,"Rob-auto", $text & " " @username)
Else
MsgBox(4096, "Erreur", "Je ne te comprend pas")
EndIfl'erreur que vous retourne autoit, dit simplement qui y a un problème avec la condition (if..else...endif)
Code : Tout sélectionner
$bloop = 1
While $bLoop = 1
$text = InputBox("Rob-auto", "Bonjour")
If @error Then ;c'est ici le problème
msgbox(1,"Quitter","Quitter")
Exit
EndIf
If $text = "Bonjour" Or $text = "Salut" Or $text = "lu" Or $text = "yo" Or $text = "yolvuuk" Or $text = "slt" Or $text = "salu" Or $text = "yolvuk" Then
$sLoop = 0
MsgBox(0,"Rob-auto", $text & " " @username)
Else
MsgBox(4096, "Erreur", "Je ne te comprend pas")
EndIf
$bLoop = 0
WEndRe: [..] Scripts pour "discuter avec l'ordi"
Et ensuite, (c'est mon dernier problème, juré !)
Quand je met les 2 a la suite, après l'inputbox "bonjour" sa ne passe pas à l'inputbox "sa va ?" pourquoi ?
Le code encore...
Quand je met les 2 a la suite, après l'inputbox "bonjour" sa ne passe pas à l'inputbox "sa va ?" pourquoi ?
Le code encore...
► Afficher le texte
Re: [..] Scripts pour "discuter avec l'ordi"
Ton problème vient lorsque ton script sort de la première boucle par :
$bLoop = 0
Etant donné que tu as défini $bLoop comme étant égal à 0, la seconde boucle ne peut se faire.
Pour sortir d'une boucle tu peux sois utiliser ta méthode mais en redéfinissant $bLoop égal à 1 une fois sorti de ta boucle pour que la seconde puisse avoir lieu, soit passer tout simplement par un exitloop.
Exemple avec Exitloop :
Exemple fonctionnel avec ta méthode :
$bLoop = 0
Etant donné que tu as défini $bLoop comme étant égal à 0, la seconde boucle ne peut se faire.
Pour sortir d'une boucle tu peux sois utiliser ta méthode mais en redéfinissant $bLoop égal à 1 une fois sorti de ta boucle pour que la seconde puisse avoir lieu, soit passer tout simplement par un exitloop.
Exemple avec Exitloop :
► Afficher le texte
► Afficher le texte
Re: [..] Scripts pour "discuter avec l'ordi"
Voilà, merci beaucoup à tous, tout marche...
Sauf un petit porblème
Quand je répond faux à la première question, (ou qu'il ne reconnaît pas le message) il passe quand même à la suite...
Sauf un petit porblème
Quand je répond faux à la première question, (ou qu'il ne reconnaît pas le message) il passe quand même à la suite...
Re: [..] Scripts pour "discuter avec l'ordi"
Il y avait une sortie de boucle même si les conditions n'étaient pas remplies.
Ceci répond à tes attentes :
Ceci répond à tes attentes :
► Afficher le texte


