"loop" sans "do"
Résolu/Fermé
docteur_nemo
Messages postés
21
Date d'inscription
vendredi 7 juillet 2017
Statut
Membre
Dernière intervention
17 juillet 2018
-
8 juil. 2017 à 19:13
docteur_nemo Messages postés 21 Date d'inscription vendredi 7 juillet 2017 Statut Membre Dernière intervention 17 juillet 2018 - 9 juil. 2017 à 18:00
docteur_nemo Messages postés 21 Date d'inscription vendredi 7 juillet 2017 Statut Membre Dernière intervention 17 juillet 2018 - 9 juil. 2017 à 18:00
A voir également:
- Boucle sans do vba
- Excel compter cellule couleur sans vba - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Find vba - Astuces et Solutions
- Xwxwxwxwv songs do 2023 ✓ - Forum Audio
- Vba attendre 1 seconde ✓ - Forum VB / VBA
2 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
8 juil. 2017 à 19:30
8 juil. 2017 à 19:30
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. ;)
docteur_nemo
Messages postés
21
Date d'inscription
vendredi 7 juillet 2017
Statut
Membre
Dernière intervention
17 juillet 2018
9 juil. 2017 à 18:00
9 juil. 2017 à 18:00
merci ^^