|
|
|
.
Programmer un jeu de serpents et échelles
(Inspiré d'un
tutoriel pour Delphi de Nathalie Champagne)
.
|
- 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.
- 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) |
- Sauvegardez
l'interface dans
VB_Module4
sous les noms E22F1xx.Frm
et EX22xx.VBP.
- 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.
- 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 |
- Ajoutez le code au Bouton
BO_Quitte.
Il doit s'agir du code demandant confirmation.
Utilisez Unload
me au lieu
de End
pour sortir.
- Ajoutez le module Serpent.bas
contenant les instructions suivantes.
Global Joueur As Integer
Global Pos_J1 As Integer
Global Pos_J2 As Integer |
- 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 |
- 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 |
- 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 |
- 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 |
- 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 |
- Enregistrez
votre fichier en lui conservant les mêmes
noms.
Testez-le et apportez-lui les corrections qui
pourraient s'avérer nécessaires.
|
|