Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1369 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VB: Prog qui plante...mais pourquoi?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VB: Prog qui plante...mais pourquoi?

n°1041365
finch911
Posté le 09-04-2005 à 16:29:26  profilanswer
 

Salut,
Je dois réaliser un genre de petit jeu en VB
Le programme génére un nombre entier aléatoire
L'utilisateur entre des nombres et a chaque fois le programme lui dit si il est plus grand ou plus petit que le nombre généré.
Une fois que l'utilisateur a trouver le nombre, on affiche le nombre d'essais
La dessus j'ai aucun problème. Si il tape une chaine de caractère on devra le sortir du programme...et la ca plante
(je début en VB)
 
 

Code :
  1. Sub jeux()
  2. Dim valeur As String
  3. Dim essais As String
  4. Dim vraisfaux As String
  5. Dim compteur As Integer
  6. Dim tmp As String
  7. Dim tmp2 As Integer
  8. compteur = 0
  9. tmp = Rnd() * 100
  10. valeur = Int(tmp)
  11. essais = InputBox("Entrez un nombre entre 0 et 100", "Nombre" )
  12. Do
  13.      MsgBox (essais)
  14.      If IsNumeric(essais) = False Then
  15.          essais = -1
  16.        
  17.      Else
  18.          If (essais < valeur) Then
  19.               vraisfaux = "Le nombre est plus grand!"
  20.          Else
  21.               vraisfaux = "Le nombre est plus petit!"
  22.          End If
  23.          essais = InputBox(vraisfaux, "Nombre" )
  24.        
  25.        
  26.      End If
  27.    
  28.      compteur = compteur + 1
  29. Loop While ((essais <> valeur) Or (essais = -1))
  30. MsgBox (compteur)
  31. End Sub


 
 

mood
Publicité
Posté le 09-04-2005 à 16:29:26  profilanswer
 

n°1041375
AlainTech
Pas trouvé? Cherche encore!
Posté le 09-04-2005 à 16:40:34  profilanswer
 

Essaye comme ça:

Sub jeux()
Dim valeur As String
Dim essais As String
Dim vraisfaux As String
Dim compteur As Integer
Dim tmp As String
Dim tmp2 As Integer
 
compteur = 0
tmp = Rnd() * 100
valeur = Int(tmp)
 
essais = InputBox("Entrez un nombre entre 0 et 100", "Nombre" )
 
Do
  MsgBox (essais)
  If IsNumeric(essais) Then
    If (essais < valeur) Then
      vraisfaux = "Le nombre est plus grand!"
    Else
      vraisfaux = "Le nombre est plus petit!"
    End If
    essais = InputBox(vraisfaux, "Nombre" )
  Else
    Exit Sub
  End If
  compteur = compteur + 1
Loop While ((essais <> valeur) Or (essais = -1))
 
MsgBox (compteur)
 
End Sub


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
n°1041382
finch911
Posté le 09-04-2005 à 16:46:19  profilanswer
 

Ca marche mais j'avais un peu simplifier.
Il faudrait juste que je sortes de la boucle et pas de la "Sub".

n°1041460
Carbon_14
Posté le 09-04-2005 à 18:28:38  profilanswer
 

"Exit do" sort d'une boucle do (me semble, VB vieux). Exit for d'un for next.
 
essais = InputBox("entrez " ) ne devrait pas être dans la boucle DO ??

n°1041533
AlainTech
Pas trouvé? Cherche encore!
Posté le 09-04-2005 à 20:29:58  profilanswer
 

Tu déclares essais comme string donc tu ne peux y mettre un nombre.
Il y a donc une façon simple de sortir de ta boucle en vérifiant si essais est numérique:

Sub jeux()
Dim valeur As String
Dim essais As String
Dim vraisfaux As String
Dim compteur As Integer
Dim tmp As String
Dim tmp2 As Integer
 
compteur = 0
tmp = Rnd() * 100
valeur = Int(tmp)
 
essais = InputBox("Entrez un nombre entre 0 et 100", "Nombre" )
 
Do
  MsgBox (essais)
  If (essais < valeur) Then
    vraisfaux = "Le nombre est plus grand!"
  Else
    vraisfaux = "Le nombre est plus petit!"
  End If
  essais = InputBox(vraisfaux, "Nombre" )
  compteur = compteur + 1
Loop While (IsNumeric(essais) And (essais <> valeur))
 
MsgBox (compteur)
 
End Sub



---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VB: Prog qui plante...mais pourquoi?

 

Sujets relatifs
imagejpeg etc etc qui plantecommande prog java
[ C ] débunger un proglivre consellé ? (prog. de jeux en C++)
liaison prog C++ et excel[C++]Mon programme compile mais plante.
php executer prog avec interface graphiqueprog demarrage de session
Convertir un prog C++ Unix en Prog Visuql C++ sous Windows[Delphi] faire une pause dans un prog ?
Plus de sujets relatifs à : VB: Prog qui plante...mais pourquoi?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR