mauriiiiiice | Bonsoir à tous,
Je dois programmer le jeu othello en utilisant le langage Visual Basic. Mon niveau n'est pas particulièrement exceptionnel mais je maîtrise plutôt bien les conditionnel et les boucles (For...next, do...while, loop...until).
J'ai déjà fait:
- Les déclarations de base.
- La gestion des tours de jeu (joueur 1 ou joueur 2).
- Recherche de case possible à jouer.
J'ai déjà cherché des exemples sur internet (cf: www.vbfrance.com) mais ces derniers étaient un peu trop élaboré et j'ai eu quelques problèmes de compréhension.
Je bloque un peu sur un élément essentiel de ce jeu: la gestion des pions à retourner (prenant la couleur adverse) après chaque tour.
Merci de mapporter un peu daide
Voilà mon code:
(Pas de moqueries please
LES DECLARATIONS:
Code :
- Option Explicit
- Const LargueurCote = 8
- 'Largueur des cotés de l'othellier
- TableauEtatCase(1 To LargueurCote, 1 To LargueurCote) As String
- 'Tableau non visible par l'utilisateur indiquant les cases vides et non vides ainsi que la couleur du pion présent
- Dim NumJoueur As Boolean
- 'Booléen gérant les joueurs(Faux = au tour du joueur 1)
|
TOUR DE JEU:
Code :
- Sub TourJoueur()
- 'Gestion des tours de jeu
- If NumJoueur = False Then
- NumJoueur = True
-
- Else
- NumJoueur = False
-
- End If
- End Sub
|
INITIALISATION DE L'OTHELLIER:
Code :
- Private Sub Form_Load()
- 'Initialisation de l'othellier
- Dim i As Integer
- Dim j As Integer
- NumJoueur = False
- For i = 1 To LargueurCote
- For j = 1 To LargueurCote
- TableauEtatCase(i, j) = "vide"
- Next j
- Next i
- TableauEtatCase(4, 5) = "noir"
- TableauEtatCase(5, 4) = "noir"
- TableauEtatCase(4, 4) = "blanc"
- TableauEtatCase(5, 5) = "blanc"
- End Sub
|
DEBUT DE LA PARTIE:
Code :
- Private Sub Command2_Click()
- 'Début du jeu
- Do
- abcisse = Input("Quelle est l'abcisse de la case à jouer ?", Saisie)
- ordonne = Input("Quelle est l'ordonnée de la case à jouer ?", Saisie)
- If ((abcisse >= 1) And (abcisse <= 8) And (ordonnee >= 1) And (ordonnee <= 8) And (TableauEtatCase(abcisse, ordonne) = "vide" ) And (adjacent(abcisse, ordonnee) = True)) Then
- '.....la suite prochainement
- End Sub
|
RECHERCHE D'UN PION ADVERSE ADJACENT:
Code :
- Function adjacent(i As Integer, j As Integer) As Boolean
- adjacent(i, j) = False
- 'Recherche d'un pion adjacent de couleur adverse
- 'Côté gauche
- If ((NumJoueur = False) And (i = 1) And (j > 1) And (j < 8)) And ((TableauEtatCase(i, j - 1) = "blanc" ) Or (TableauEtatCase(i, j + 1) = "blanc" ) Or (TableauEtatCase(i + 1, j) = "blanc" ) Or (TableauEtatCase(i + 1, j - 1) = "blanc" ) Or (TableauEtatCase(i + 1, j + 1) = "blanc" )) Then
- adjacent(i, j) = True
-
- 'Côté droit
- ElseIf ((NumJoueur = False) And (i = 8) And (j > 1) And (j < 8)) And ((TableauEtatCase(i, j - 1) = "blanc" ) Or (TableauEtatCase(i, j + 1) = "blanc" ) Or (TableauEtatCase(i - 1, j) = "blanc" ) Or (TableauEtatCase(i - 1, j - 1) = "blanc" ) Or (TableauEtatCase(i - 1, j + 1) = "blanc" )) Then
- adjacent(i, j) = True
-
- 'Haut
- ElseIf ((NumJoueur = False) And (j = 1) And (i > 1) And (i < 8)) And ((TableauEtatCase(i - 1, j) = "blanc" ) Or (TableauEtatCase(i + 1, j) = "blanc" ) Or (TableauEtatCase(i, j + 1) = "blanc" ) Or (TableauEtatCase(i - 1, j + 1) = "blanc" ) Or (TableauEtatCase(i + 1, j + 1) = "blanc" )) Then
- adjacent(i, j) = True
-
- 'Bas
- ElseIf ((NumJoueur = False) And (j = 8) And (i > 1) And (i < 8)) And ((TableauEtatCase(i - 1, j) = "blanc" ) Or (TableauEtatCase(i + 1, j) = "blanc" ) Or (TableauEtatCase(i, j - 1) = "blanc" ) Or (TableauEtatCase(i - 1, j - 1) = "blanc" ) Or (TableauEtatCase(i + 1, j - 1) = "blanc" )) Then
- adjacent(i, j) = True
-
- 'Coin haut gauche
- ElseIf ((NumJoueur = False) And (i = 1) And (j = 1)) And ((TableauEtatCase(2, 1) = "blanc" ) Or (TableauEtatCase(1, 2) = "blanc" ) Or (TableauEtatCase(2, 2) = "blanc" )) Then
- adjacent(i, j) = True
-
- 'Coin haut droit
- ElseIf ((NumJoueur = False) And (i = 8) And (j = 1)) And ((TableauEtatCase(7, 1) = "blanc" ) Or (TableauEtatCase(8, 2) = "blanc" ) Or (TableauEtatCase(7, 2) = "blanc" )) Then
- adjacent(i, j) = True
-
- 'Coin bas gauche
- ElseIf ((NumJoueur = False) And (i = 1) And (j = 8)) And ((TableauEtatCase(1, 7) = "blanc" ) Or (TableauEtatCase(2, 8) = "blanc" ) Or (TableauEtatCase(2, 7) = "blanc" )) Then
- adjacent(i, j) = True
-
- 'Coin bas droit
- ElseIf ((NumJoueur = False) And (i = 8) And (j = 8)) And ((TableauEtatCase(8, 7) = "blanc" ) Or (TableauEtatCase(7, 8) = "blanc" ) Or (TableauEtatCase(7, 7) = "blanc" )) Then
- adjacent(i, j) = True
-
- 'Reste de l'othellier
- ElseIf ((NumJoueur = False) And (i > 1) And (i < 8) And (j > 1) And (j < 8)) And ((TableauEtatCase(i - 1, j) = "blanc" ) Or (TableauEtatCase(i + 1, j) = "blanc" ) Or (TableauEtatCase(i, j - 1) = "blanc" ) Or (TableauEtatCase(i, j + 1) = "blanc" ) Or (TableauEtatCase(i - 1, j - 1) = "blanc" ) Or (TableauEtatCase(i + 1, j - 1) = "blanc" ) Or (TableauEtatCase(i - 1, j + 1) = "blanc" ) Or (TableauEtatCase(i + 1, j + 1) = "blanc" )) Then
- adjacent(i, j) = True
-
- End If
- 'Côté gauche
- If ((NumJoueur = True) And (i = 1) And (j > 1) And (j < 8)) And ((TableauEtatCase(i, j - 1) = "noir" ) Or (TableauEtatCase(i, j + 1) = "blanc" ) Or (TableauEtatCase(i + 1, j) = "noir" ) Or (TableauEtatCase(i + 1, j - 1) = "noir" ) Or (TableauEtatCase(i + 1, j + 1) = "noir" )) Then
- adjacent(i, j) = True
-
- 'Côté droit
- ElseIf ((NumJoueur = True) And (i = 8) And (j > 1) And (j < 8)) And ((TableauEtatCase(i, j - 1) = "noir" ) Or (TableauEtatCase(i, j + 1) = "noir" ) Or (TableauEtatCase(i - 1, j) = "noir" ) Or (TableauEtatCase(i - 1, j - 1) = "noir" ) Or (TableauEtatCase(i - 1, j + 1) = "noir" )) Then
- adjacent(i, j) = True
-
- 'Haut
- ElseIf ((NumJoueur = True) And (j = 1) And (i > 1) And (i < 8)) And ((TableauEtatCase(i - 1, j) = "noir" ) Or (TableauEtatCase(i + 1, j) = "noir" ) Or (TableauEtatCase(i, j + 1) = "noir" ) Or (TableauEtatCase(i - 1, j + 1) = "noir" ) Or (TableauEtatCase(i + 1, j + 1) = "noir" )) Then
- adjacent(i, j) = True
-
- 'Bas
- ElseIf ((NumJoueur = True) And (j = 8) And (i > 1) And (i < 8)) And ((TableauEtatCase(i - 1, j) = "noir" ) Or (TableauEtatCase(i + 1, j) = "noir" ) Or (TableauEtatCase(i, j - 1) = "noir" ) Or (TableauEtatCase(i - 1, j - 1) = "noir" ) Or (TableauEtatCase(i + 1, j - 1) = "noir" )) Then
- adjacent(i, j) = True
-
- 'Coin haut gauche
- ElseIf ((NumJoueur = True) And (i = 1) And (j = 1)) And ((TableauEtatCase(2, 1) = "noir" ) Or (TableauEtatCase(1, 2) = "noir" ) Or (TableauEtatCase(2, 2) = "noir" )) Then
- adjacent(i, j) = True
-
- 'Coin haut droit
- ElseIf ((NumJoueur = True) And (i = 8) And (j = 1)) And ((TableauEtatCase(7, 1) = "noir" ) Or (TableauEtatCase(8, 2) = "noir" ) Or (TableauEtatCase(7, 2) = "noir" )) Then
- adjacent(i, j) = True
-
- 'Coin bas gauche
- ElseIf ((NumJoueur = True) And (i = 1) And (j = 8)) And ((TableauEtatCase(1, 7) = "noir" ) Or (TableauEtatCase(2, 8) = "noir" ) Or (TableauEtatCase(2, 7) = "noir" )) Then
- adjacent(i, j) = True
-
- 'Coin bas droit
- ElseIf ((NumJoueur = True) And (i = 8) And (j = 8)) And ((TableauEtatCase(8, 7) = "noir" ) Or (TableauEtatCase(7, 8) = "noir" ) Or (TableauEtatCase(7, 7) = "noir" )) Then
- adjacent(i, j) = True
-
-
- 'Reste de l'othellier
- ElseIf ((NumJoueur = True) And (i > 1) And (i < 8) And (j > 1) And (j < 8)) And ((TableauEtatCase(i - 1, j) = "noir" ) Or (TableauEtatCase(i + 1, j) = "noir" ) Or (TableauEtatCase(i, j - 1) = "noir" ) Or (TableauEtatCase(i, j + 1) = "noir" ) Or (TableauEtatCase(i - 1, j - 1) = "noir" ) Or (TableauEtatCase(i + 1, j - 1) = "noir" ) Or (TableauEtatCase(i - 1, j + 1) = "noir" ) Or (TableauEtatCase(i + 1, j + 1) = "noir" )) Then
- adjacent(i, j) = True
-
- End If
- End Function
|
Message édité par mauriiiiiice le 17-01-2007 à 18:15:46
|