SÉRIE 2 *

 

Théorie

      Interface

    Série 1

     Série 2

       Série 3

       Série 4

. 
DEVINER UN CHIFFRE CHOISI AU HASARD PAR L'ORDINATEUR
(Inspiré des fiches de Mme Claudette Bélanger)

.

Pour illustrer les notions de boucle et de choix aléatoire, vous allez construire un programme qui demande à l’utilisateur de deviner un nombre sélectionné au hasard par l’ordinateur.  La boucle se répétera jusqu’à ce que l’utilisateur trouve le nombre.

  1. Commencez un nouveau projet. Donnez à la feuille le nom de F_Intro et la propriété WindowState= maximized. (Notez que les caractéristiques dont il n'est pas fait mention, que ce soit pour la feuille ou les autres objets, sont laissés à votre discrétion.)
  2. Créez une étiquette ET_Titre  pour afficher en haut de la feuille, en gros,  le titre:  Devine le nombre choisi par l’ordinateur. Utilisez pour cette étiquette la propriété alignment = centré.
  3. Créez, en bas de la feuille, une étiquette ET_mess  pour afficher les messages lors de l’exécution. Voici un exemple du genre d'interface attendu.

  1. Dans un module .Bas, déclarez la variable V_nbr de type Integer, la variable V_rep de type Variant ainsi que les variables V_Titre et V_msg de type String.  Sauvegardez ce module MODDEV.BAS  dans VB_module2.
  2. Ajoutez le code suivant dans le FORM (case de gauche) de la feuille.

Sub Form_Load ()
     Dim V_defval as integer
    
F_intro.Show
     V_titre = "Devinez un nombre"
     v_msg = "Entrez votre chiffre"
     V_defval = 0
     Randomize         
'Permet de générer des nombres différents
     v_nbr = Int(10 * Rnd + 1)      'Sélectionne un nombre au hasard
     Do Until  v_rep = v_nbr          'Fait jusqu’à V_rep = V_nbr
            
If v_rep <> "" then      'Si on fournit une réponse
                v_rep = InputBox(v_msg, V_titre, V_defval, 2900, 1800)
                Valider
         Else     'Si on presse sur le bouton Annule
                Exit do  
'Sortie de la boucle
           End if

      Loop                                  'Fin de la boucle
      MsgBox "Au revoir!"
      End   
End Sub

  1. Ajoutez une procédure Valider (n’oubliez pas de vous placer dans le général de la feuille pour créer cette procédure).  Ajoutez-lui le code suivant.

Sub valider ()
      ET_mess.Caption = ""
      If v_rep = v_nbr Then      
'Vérifie si V_nbr est égal à V_rep
          ET_mess.Caption = "Bravo!"
      Else
 
         ET_mess.Caption = "Erreur! Recommence."

      End If

End Sub

  1. Testez le programme. Ajustez les étiquettes et le InputBox  afin que la boite de dialogue arrive au centre de la feuille sans cacher vos deux étiquettes.
  2. Sauvegardez  dans le sous-répertoire VB_Module2 le fichier sous...  E10F1xx.FRM et le projet sous... EX10xxxx.VBP.

Actuellement, le programme s’exécute jusqu’à ce que l’utilisateur trouve le bon nombre.  Il serait intéressant de donner une limite aux chances de l’utilisateur.  Nous ajouterons donc une limite de 5 chances.

Pour cela il faut utiliser un compteur. Un compteur est une variable qui est incrémentée de un à chaque fois que la boucle s’exécute.
  1. Allez ajouter une variable V_fois de type Integer  dans le général de la feuille.

  2. Allez dans le code de la feuille et modifiez-le de la manière suivante (les lignes à ajouter ou à modifier sont en caractères gras).

Sub Form_Load ()
     Dim V_defval as integer
    
F_intro.Show
     V_titre = "Devinez un nombre"
     v_msg = "Entrez votre chiffre"
     V_defval = 0
     Randomize         
'Permet de générer des nombres différents
     v_nbr = Int(10 * Rnd + 1)      'Sélectionne un nombre au hasard
    Let V_fois = 0   
'Pour initialiser le compteur à 0

      Let V_rep = 0   
'Pour initialiser la variable
     DO Until (V_rep = V_Nbr) or (V_fois = 5)   'Fait jusqu’à V_rep = --> V_nbr ou V_fois = 5
        If v_rep <> "" then      'Si on fournit une réponse
          v_rep = InputBox(v_msg, V_titre, V_defval, 2900, 1800)
         
Let V_fois = V_fois + 1 'Incrémentation

            Valider
         Else     'Si on presse sur le bouton Annule
          Exit do  
'Sortie de la boucle
      End if
      Loop                                  'Fin de la boucle
      MsgBox "Au revoir!"
      End   
End Sub

  1. Modifiez la procédure Valider de la manière suivante  (les lignes à ajouter ou à modifier sont en caractères gras).

Sub valider ()
      ET_mess.Caption = ""
      If v_rep = v_nbr Then      
'Vérifie si V_nbr est égal à V_rep
          ET_mess.Caption = "Bravo!"
      Else
          IF V_fois = 5 then
              ET_mess.caption =  "Trop tard, tu as eu 5 chances
!"

            Else

          
    ET_mess.Caption = "Erreur! Recommence."
         End If

      End If

End Sub

  1. Testez votre programme. Sauvegardez  en conservant les mêmes noms.
  2. Faites l’ordinogramme de la procédure Valider.

 

Ce site est optimisé pour Microsoft Internet Explorer en 800x600.Copyright © {2003} {ESLS - Yvon Lemay}. Tous droits réservés.

 Design by
LOGOSLAND CREATIONS