SÉRIE 4 *

 

Théorie

      Interface

    Série 1

     Série 2

       Série 3

       Série 4

. 
Programmer un jeu de serpents et échelles
(Inspiré d'un tutoriel pour Delphi de Nathalie Champagne)
.

Fichiers à télécharger: Animis23.ico  Animis24.ico  Depart.bmp  Des_1.bmp  Des_2.bmp  Des_3.bmp Des_4.bmp  Des_5.bmp  Des_6.bmp Planche.bmp Lance_des.bmp

  1. Voici l'interface que vous devez tout d'abord reproduire. Rien ne vous empêche de changer les couleurs ou les images à condition que vous ne changiez pas les noms utilisés (afin de ne pas influer sur la programmation) et la disposition des serpents et des échelles. Notez aussi que vous activer la propriété PICTURE de la feuille avec l'image Planche.bmp, le temps de placer vos étiquettes. En outre, il n'est pas nécessaire que des numéros soient placés dans le bas comme dans l'exemple: ils peuvent tous se trouver dans le haut des étiquettes à droite.

 

  1. Les noms des objets nécessaires vous sont donnés ainsi que les caractéristiques essentielles qu'elles doivent posséder. À vous de choisir les autres. Les images ne sont pas intégrées pour le moment: elles le seront dans le code.
F_planche Agrandissement maximizé, Caption = "Jeu de serpents et échelles
CA_Des Cadre ou rectangle, Caption = "Lancement du dé"
ET_joueur Caption = "Joueur 1"
IM_De1 Sous Et_joueur, vide pour le moment
BO_Des Sous IM_De1, Caption = vide
ET_J1 Sous CA_des, à gauche, Caption = "Joueur 1", rouge
ET_J2 Sous CA_des, à droite, Caption = "Joueur 2", bleu
IM_Joueur1 Sous ET_J1, vide pour le moment
IM_Joueur2 Sous ET_J2, vide pour le moment
ET_Case1 Sous IM_Joueur1, vide pour le moment
ET_Case2 Sous IM_Joueur2, vide pour le moment
BO_Départ Sous IM_Joueur1 et IM_Joueur2, Caption = vide
BO_Quitte Sous Bo_Départ, Caption = Quitte
IM_Pion1 Haut gauche de la case 1, vide
IM_Pion2 Bas droit de la case 1, vide
ET_1 à ET_16 Numérotation des cases (comme dans l'exemple)
  1. Sauvegardez l'interface dans VB_Module4 sous les noms E22F1xx.Frm  et EX22xx.VBP.
  2. Assurez-vous que toutes les images téléchargées au début de cette fiche sont enregistrées dans le sous-répertoire Images du répertoire VB_Module4. Si vous changez certaines de ces images, assurez-vous que les nouvelles sont bien dans le même sous-répertoire.
  3. Procédons à l'initialisation des variables et des objets dans la procédure Form_Load(). Certaines lignes du code sont absentes (??). À vous de les rédiger en vous basant sur les lignes précédentes et sur la documentation fournie.
Private Sub Form_Load()
   Dim Fichier As String
   Fichier = App.Path & "\Images\Planche.bmp" 
'Initialisation de Fichier-->
avec le chemin de l'application et le nom du fichier et du sous-répertoire
   F_Planche.Picture = LoadPicture(Fichier) 
'Chargement de l'image
   Fichier = App.Path & "\Images\Lance_des.bmp"
   BO_Des.Picture = LoadPicture(Fichier)
   ??
'Initialisation de Fichier avec le chemin de l'application, le nom du-->
sous-répertoire et le fichier Depart.bmp (ou celui que vous utilisez à -->
la place
   BO_Départ.Picture = LoadPicture(Fichier)
   Fichier = App.Path & "\Images\Des_6.bmp"
   ??
'Chargement de l'image IM_de1
   Fichier = App.Path & "\Images\Animis23.ico"
   IM_Joueur1.Picture = LoadPicture(Fichier)
  IM_Pion1.Picture = LoadPicture(Fichier)
   ??
'Initialisation avec l'image Animis24.ico
   ??
'Chargement de l'image IM_Joueur2
  
?? 'Chargement de l'image IM_Pion2
   IM_Joueur1.Visible = True
   ??
'IM_Joueur2 rendu visible
   Bo_Des.Enabled = False
   ???
'Bouton Bo_Départ rendu actif
   IM_Pion1.Visible = False
   IM_pion2.Visible = False
   Pos_J1 = 0
   Pos_J2 = 0
   Joueur = 1
End Sub
  1. Ajoutez le code au Bouton BO_Quitte. Il doit s'agir du code demandant confirmation. Utilisez Unload me au lieu de End pour sortir.
  2. Ajoutez le module Serpent.bas contenant les instructions suivantes.
Global Joueur As Integer
Global Pos_J1 As Integer
Global Pos_J2 As Integer
  1. Créez une nouvelle procédure que vous nommez Lance_Des. Voici le code à y introduire. Complétez les parties qui manquent.
Public Sub Lance_des()
   Dim Roulade, V_fois, i, de As Integer
   Dim Fichier As String
   Randomize
   Roulade = Int(5 * Rnd + 1) 
'Nombre de tirages à effectuer pour -->
simuler le roulement du dé
   While V_fois < Roulade 
'Boucle initialisée à Roulade
      de = Int(6 * Rnd + 1)
      Select Case de
          Case Is = 6
              Fichier = App.Path & "\Images\Des_6.bmp"
          Case Is = 5
              Fichier = App.Path & "\Images\Des_5.bmp"
          ?? 
'Continuez la suite jusqu'à 1
      End Select
      IM_De1.Picture = LoadPicture(Fichier)
      V_fois = V_fois + 1
   Wend
   If Joueur = 1 Then
      If 16 - de < Pos_J1 Then 
'Pour s'assurer de ne pas dépasser 16
          MsgBox "Chiffre trop grand!" 
      Else
          Pos_J1 = Pos_J1 + de
      End If
   End If
   ???
'Portion de code identique à la précédente pour le joueur 2
End Sub
  1. Créez une autre procédure que vous nommez Déplacement. Voici le code à y introduire. Complétez les parties qui manquent.
Public Sub Déplacement()
   If Joueur = 1 Then
      IM_Pion1.Visible = True
      Select Case Pos_J1
         Case Is = 1
            IM_Pion1.Left = ET_1.Left + 25
            IM_Pion1.Top = ET_1.Top + 15
         Case Is = 2
            IM_Pion1.Left = ET_2.Left + 25
            IM_Pion1.Top = ET_2.Top + 15
         Case Is = 3
            IM_Pion1.Left = ET_3.Left + 25
            IM_Pion1.Top = ET_3.Top + 15
         ?? 
'Complétez kusqu'à 16
      End Select
   End If
   If Joueur = 2 Then
      IM_pion2.Visible = True
      Select Case Pos_J2
          Case Is = 1
             IM_pion2.Left =
ET_1.Left + 75
             IM_pion2.Top = ET_1.Top + 65
          ??  'Complétez jusqu'à 16
      End Select
    End If
End Sub
  1. Au tour de la procédure  Vérification. Voici le code. Complétez les parties qui manquent.
Public Sub Vérification()
   If Joueur = 1 Then
       Select Case Pos_J1
          Case Is = 3
             Pos_J1 = 5
             MsgBox "On monte!"
          Case Is = 10
             Pos_J1 = 13
             MsgBox "On monte!"
          Case Is = 15
             Pos_J1 = 11
             MsgBox "On redescend!"
          Case Is = 12
             Pos_J1 = 6
             MsgBox "On redescend!"
          Case Is = 8
             Pos_J1 = 2
             MsgBox "On redescend!"
        End Select
    End If
    ?? 
'Ajoutez la section de script pour le joueur 2
End Sub
  1. Enfin, la procédure Partie_finie. Voici le code
Public Sub Partie_finie()
   Bo_Des.Enabled = False
   Bo_Départ.Enabled = True
   If Joueur = 1 Then
      Joueur = 2
   Else
      Joueur = 1
   End If
   MsgBox "Le vainqueur est le joueur # " & Joueur
'Affichage du vainqueur
   IM_Pion1.Visible = False 
'Réinitialisation des variables pour une -->
partie
   IM_Pion1.Left = 472
   IM_Pion1.Top = 392
   IM_pion2.Visible = False
   Pos_J1 = 0
   Pos_J2 = 0
   Joueur = 1
End Sub
  1. Il ne reste plus qu'à ajouter le code dans les boutons BO_Départ et BO_des
Private Sub Bo_Départ_Click()
    Im_Joueur1.Visible = True 
'Initialisation des variables et des --->
caractéristiques
    Im_Joueur2.Visible = True
    Bo_Des.Enabled = True
    Bo_Départ.Enabled = False
    Joueur = 1
    ET_Joueur.Caption = "Joueur 1"
    ET_Joueur.ForeColor = &HFF&
End Sub

 

Private Sub Bo_Des_Click()
   Lance_des 
'Appelle la procédure Lance_des
   Déplacement 
'Appelle la procédure Déplacement pour bouger le pion
   Vérification 
'Appelle la procédure Vérification pour vérifier s'il -->
s'agit d'une case spéciale
   Déplacement 
'Change la position du pion si elle a changé après -->
vérification
   If Joueur = 1 Then
      ET_Joueur.ForeColor = &HFF& 
'Change la couleur du texte de-->
l'étiquette ET_joueur
      ET_Joueur.Caption = "Joueur 2" 
'Change le contenu de l'étiquette-->
ET_joueur
      Joueur = 2  
'Réinitialise Joueur
      ET_Case1 = "Case " & Pos_J1 
'Change le contenu de l'étiquette-->
ET_Case1 pour indiquer la position
   Else
      ET_Joueur.ForeColor = &HFF&
      ET_Joueur.Caption = "Joueur 1"
      Joueur = 1
      ET_Case2 = "Case " & Pos_J2
   End If
   If Pos_J1 = 16 Or Pos_J2 = 16 Then 
'Appelle la procédure -->
Partie_finie si la position de l'un ou l'autre des joueurs est égale à 16
      Partie_finie
   End If
End Sub
  1. Enregistrez votre fichier en lui conservant les mêmes noms. Testez-le et apportez-lui les corrections qui pourraient s'avérer nécessaires. 

 

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

 Design by
LOGOSLAND CREATIONS