"loop" sans "do"
Résolu
docteur_nemo
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
docteur_nemo Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
docteur_nemo Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
bonjour,
j'ai un problème avec mon programme:
a chaque fois que je le lance, il me dit erreur, 'loop' sans 'de' mais je suis pas fou, je l'ai mis le do.
Merci de me dire comment résoudre ce problème.
Le programme:
j'ai un problème avec mon programme:
a chaque fois que je le lance, il me dit erreur, 'loop' sans 'de' mais je suis pas fou, je l'ai mis le do.
Merci de me dire comment résoudre ce problème.
Le programme:
'plus ou moins
Randomize
MsgBox "Plus ou moins" & Chr(10) & "Bienvenue dans le jeu du plus ou moins",0,"plus_ou_moins"
w = MsgBox("une fois ce jeu lance, vous ne pourrez l'arreter qu'en gagnant," & Chr(10) & "etes-vous sur ?",36,"plus_ou_moins")
If w = 7 then 'arret
msgbox "alors en revoir ^^",0,"plus_ou_moins"
WScript.quit
End If
'initialization
dim dif
dim d
dif = msgboxperso("quelle difficulte voulez-vous ?","plus_ou_moins",32,"facile","difficile","true") 'choix difficulte
If dif = 1 then 'facile
d = 100
Else if dif = 2 then 'difficile
d = 1000
Else if dif = 0 then 'annuler
WScript.quit
End If
dim s
s = 1
x = int(Rnd * d) + 1 'tirrage nb aleatoire 1<x<d
Do
y = int(InputBox("ton nombre","plus_ou_moins","nbr")) 'input nbr joueur
If y < x then 'plus petit
msgbox "plus grand",0,"plus_ou_moins"
Else If y > x then 'plus grand
msgbox "plus petit",0,"plus_ou_moins"
Else If y < 1 or y > d then 'hors bornes
msgbox "tu n'est pas dans les bornes",0,"plus ou moins"
End If
If y = x then 'victoire
Msgbox "felicitation, tu as trouve en " & s & " coups",0,"plus_ou_moins"
z = msgbox("veux tu recommencer ?",4+32,"plus_ou_moins") 'nouvelle partie ?
If z = 7 then 'non
Msgbox "Merci d'avoir joue",0,"plus_ou_moins" 'message au revoir
WScript.quit
Else If z = 6 then 'oui
msgbox "alors allons-y pour une nouvelle partie",0,"plus_ou_moins"
dif = msgboxperso("quelle difficulte voulez-vous ?","plus_ou_moins",32,"facile","difficile","true") 'choix difficulte
If dif = 1 then 'facile
d = 100
Else If dif = 2 then 'difficile
d = 1000
Else If dif = 0 then 'annuler
WScript.quit
End If
'reinitialisation
s = 0
x = int(Rnd * d) + 1 'tirrage nb aleatoire 1<x<d
End If
End If
s = s + 1
loop
A voir également:
- Boucle sans do vba
- Excel compter cellule couleur sans vba - Guide
- My people do - Télécharger - Organisation
- Incompatibilité de type vba ✓ - Forum Programmation
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Do not turn off target traduction - Forum Samsung
2 réponses
Bonjour Nemo, bonjour le forum,
Je pense que le problème vient de Else If que tu devrais écrire ElseIf (sans espace)
Ton code modifié et avec identation (ce qui le rend bien plus facile à lire)
Je pense que le problème vient de Else If que tu devrais écrire ElseIf (sans espace)
Ton code modifié et avec identation (ce qui le rend bien plus facile à lire)
Dim dif Dim d Dim s 'plus ou moins Randomize MsgBox "Plus ou moins" & Chr(10) & "Bienvenue dans le jeu du plus ou moins", 0, "plus_ou_moins" w = MsgBox("une fois ce jeu lance, vous ne pourrez l'arreter qu'en gagnant," & Chr(10) & "etes-vous sur ?", 36, "plus_ou_moins") If w = 7 Then 'arret MsgBox "alors en revoir ^^", 0, "plus_ou_moins" WScript.Quit End If 'initialization dif = msgboxperso("quelle difficulte voulez-vous ?", "plus_ou_moins", 32, "facile", "difficile", "true") 'choix difficulte If dif = 1 Then 'facile d = 100 ElseIf dif = 2 Then 'difficile d = 1000 ElseIf dif = 0 Then 'annuler WScript.Quit End If s = 1 x = Int(Rnd * d) + 1 'tirrage nb aleatoire 1<x<d Do y = Int(InputBox("ton nombre", "plus_ou_moins", "nbr")) 'input nbr joueur If y < x Then 'plus petit MsgBox "plus grand", 0, "plus_ou_moins" ElseIf y > x Then 'plus grand MsgBox "plus petit", 0, "plus_ou_moins" ElseIf y < 1 Or y > d Then 'hors bornes MsgBox "tu n'est pas dans les bornes", 0, "plus ou moins" End If If y = x Then 'victoire MsgBox "felicitation, tu as trouve en " & s & " coups", 0, "plus_ou_moins" Z = MsgBox("veux tu recommencer ?", 4 + 32, "plus_ou_moins") 'nouvelle partie ? If Z = 7 Then 'non MsgBox "Merci d'avoir joue", 0, "plus_ou_moins" 'message au revoir WScript.Quit ElseIf Z = 6 Then 'oui MsgBox "alors allons-y pour une nouvelle partie", 0, "plus_ou_moins" dif = msgboxperso("quelle difficulte voulez-vous ?", "plus_ou_moins", 32, "facile", "difficile", "true") 'choix difficulte If dif = 1 Then 'facile d = 100 ElseIf dif = 2 Then 'difficile d = 1000 ElseIf dif = 0 Then 'annuler WScript.Quit End If 'reinitialisation s = 0 x = Int(Rnd * d) + 1 'tirrage nb aleatoire 1<x<d End If End If s = s + 1 Loop
Bonjour docteur_nemo,
Dans le programme que j'avais fait, j'avais oublié l'instruction int =>
si tu corriges ainsi la ligne #11, ça devrait aller :
y = Int(InputBox("ton nombre", "plus_ou_moins", "nbr")) 'input nbr joueur
car le retour de InputBox est du texte, et avec Int, c'est converti en entier.
À part ça, la structure était mieux (ordre des tests) ; et tu auras remarqué
qu'on sort de la 2ème boucle Do seulement si le nb y est dans les bornes.
D'autre part, si WScript.Quit arrête le programme et sort de la sub,
c'est ok ; sinon, il suffit de rajouter juste après « : Exit Sub ».
-------------------------------------
J'ai vu que tu as ajouté 2 niveaux de difficulté ; tu devrais plutôt en
ajouter 3, via InputBox : 1 = facile ; 2 = moyen ; 3 = difficile
Un niveau intermédiaire, ce sera plus sympa pour le joueur. ;)
Dans le programme que j'avais fait, j'avais oublié l'instruction int =>
si tu corriges ainsi la ligne #11, ça devrait aller :
y = Int(InputBox("ton nombre", "plus_ou_moins", "nbr")) 'input nbr joueur
car le retour de InputBox est du texte, et avec Int, c'est converti en entier.
À part ça, la structure était mieux (ordre des tests) ; et tu auras remarqué
qu'on sort de la 2ème boucle Do seulement si le nb y est dans les bornes.
D'autre part, si WScript.Quit arrête le programme et sort de la sub,
c'est ok ; sinon, il suffit de rajouter juste après « : Exit Sub ».
-------------------------------------
J'ai vu que tu as ajouté 2 niveaux de difficulté ; tu devrais plutôt en
ajouter 3, via InputBox : 1 = facile ; 2 = moyen ; 3 = difficile
Select Case dif Case 1: d = 100 ' facile Case 2: d = 500 ' moyen Case 3: d = 1000 ' difficile End Select
Un niveau intermédiaire, ce sera plus sympa pour le joueur. ;)