[VIDEO]Comment créer un jeu sur Excel : TIC TAC TOE - Le jeu du morpion [Tutoriel VBA débutant]

Guide « 108 astuces pour grands débutants sur Excel ! » Offert
Booster votre productivité en téléchargeant gratuitement votre ebook PDF des meilleures astuces pour les débutants et les pros d'Excel
Excel formation - 00 Astuces - 100
 

Pour ce nouveau tutoriel nous allons voir comment créer simplement un jeu sur Excel, avec l’exemple du célèbre « TIC TAC TOE », également connu sous le nom de « jeu du morpion ». Notre jeu sera jouable à deux joueurs, et nous aurons l’occasion de voir différentes fonctionnalités avancées d'Excel : comme la programmation en VBA, ou encore le fonctionnement de la mise en forme conditionnelle.

 

 

Pour suivre cet article dans les meilleures conditions, je vous invite à télécharger le fichier dans le lien disponible en fin d’article (cliquez ici pour y accéder).

 

Télécharger le jeu

 

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

1. Création du plateau de jeu

 

Notre partie de morpion s'effectuera sur un tableau de 3x3 cases. Nous allons donc commencer par sélectionner les cases B3 à D5, qui matérialiseront la zone de jeu.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Pour commencer, nous allons tracer les lignes du plateau, en ajoutant des bordures.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Puis modifier la couleur de fond des cellules.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Et enfin, nous allons donner un nom à la plage des cellules sélectionnées, en saisissant « _plateau » dans la zone de nom, en haut de la fenêtre. Puis nous validons en appuyant sur la touche [Entrée] du clavier.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Le nom que nous venons d’affecter à la plage des cellules permettra, lorsque nous allons mettre en place notre code VBA, d'appeler rapidement les cellules du plateau.

Maintenant nous allons agrandir les cases du plateau et leur donner la forme d’un carrée. Pour cela nous allons sélectionner les colonnes B à D, afin d’obtenir une largeur de 60 pixels (en faisant glisser la bordure qui se trouve à droite des en-têtes de colonne comme le montre l’illustration ci-dessous).

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Nous allons procéder de la même manière pour donner une hauteur de 60 pixels pour les lignes 3 à 5.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Enfin dans une nouvelle cellule nous allons venir saisir l’identifiant du joueur qui a la main. Cette cellule, à qui nous allons donner le nom de « _joueur » pourra prendre alternativement « 1 » et « -1 », respectivement lorsque le tour sera au joueur 1, puis au joueur 2 (nous verrons plus bas dans ce tutoriel pourquoi il vaut utiliser le -1 plutôt que le 2).

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

 

2. Un peu de code

 

    2.1. La logique du jeu

 

À présent, la zone de jeu est grossièrement dessinée, nous allons pouvoir nous plonger dans le développement du moteur du jeu.

Pour cela, nous allons nous rendre dans l'outil développement d’Excel (VBA) en effectuant un clic droit sur l’onglet de la feuille, puis « Visualiser le code ».

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Nous arrivons directement dans le code de la feuille en cours (feuille qui porte le nom de « Feuil1 » si celle-ci n’a pas encore été modifiée).

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Pour commencer, nous allons insérer une procédure évènementielle, c’est-à-dire que nous allons demander à Excel d’exécuter une commande particulière à chaque fois qu’une action va être exécutée dans la feuille de calcul.

Cette procédure « Worksheet_SelectionChange » va ainsi être invoquée à chaque fois que l’utilisateur va cliquer sur une cellule différente (et donc que la sélection va changer).

Vous pouvez soit effectuer un copier/coller du code suivant, soit l’insérer automatiquement en choisissant « Worksheet » dans le menu déroulant situé au-dessus de la zone de saisie du code, puis « SelectionChange » dans la zone de droite :

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

 

Comme nous venons de le voir ce code permet d’exécuter une procédure lorsqu’une ou plusieurs cellules sont sélectionnées. Ces cellules sont rassemblées dans une variable de type « Range » qui porte le nom de « Target ».

Pour bien comprendre le fonctionnement de l’évènement, nous allons simplement ajouter la ligne suivante qui va nous permettre d’afficher un message avec les coordonnées de la cellule sélectionnée :

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Msgbox Target.Address

End Sub

Si nous revenons sur notre feuille de calcul, à chaque fois nous allons sélectionner une cellule Excel va nous renvoyer son adresse.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Maintenant, la première chose à faire est de vérifier que la cellule sélectionnée appartient bien à notre plateau. Pour cela nous allons utiliser l'instruction « Intersect ». Cette instruction permet de récupérer l’ensemble des cellules situées à l’intersection de deux plages de cellules. Lorsqu’aucune cellule n’est commune aux deux plages, cette dernière retournera comme résultat « nothing ».

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Not Intersect([_plateau], Target) Is Nothing Then

        Msgbox Target.Address

    End If

End Sub

 

Dans cet exemple, nous n’allons plus afficher l’adresse de la cellule sélectionnée que lorsque le résultat de l’intersection de cette dernière et du plateau de jeu n’est pas égal à « nothing » (il y a au moins une cellule de communes entre la cellule sélectionnée et le plateau).

Maintenant à chaque fois que nous allons cliquer sur le plateau, plutôt que d'afficher l'adresse de la cellule sélectionnés, ce qui n’apporte rien au jeu, nous allons vouloir que le numéro du joueur soit inscrit directement à l’endroit sélectionné.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Not Intersect([_plateau], Target) Is Nothing Then
        If Target = "" Then                                 ' 1
            Target = [_joueur]                              ' 2
            [_joueur] = -1 * [_joueur]                      ' 3
        End If
    End If

End Sub

Voici le détail du code que nous venons de saisir :

  • 1 : Pour commencer nous allons vérifier que la cellule est vide (aucun pion n’a encore été posé à cet endroit),
  • 2 : Si c’est le cas, alors nous affectons la valeur du joueur (« 1 » pour le joueur 1 et « -1 » pour le deuxième joueur) à la case sélectionnée,
  • 3 : Enfin, nous passons la main au joueur suivant, en multipliant simplement la valeur contenue dans la cellule « _joueur » par -1.

 

Ensuite, lorsque le joueur suivant va sélectionner une nouvelle case, la procédure va à nouveau être appelée, et ainsi de suite.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

 

    2.2. Créer une nouvelle partie

 

Nous allons maintenant créer une nouvelle instruction qui va permettre de recommencer une nouvelle partie.

Cette instruction va simplement consister à supprimer le contenu déjà présent sur le plateau et à donner la main au joueur 1 :

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Sub nouvellePartie()

    [_plateau].ClearContents

    [_joueur] = 1

End Sub

Pour appeler rapidement cette instruction nous allons insérer un nouveau bouton :

  • Dans l’onglet « Insertion » du ruban, nous allons sélectionner « Formes » (dans le groupe « Illustrations »,
  • Choisissons par exemple un rectangle avec des coins arrondis,Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant
  • Nous allons dessiner le rectangle à la position, et aux dimensions souhaitées,Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant
  • Puis insérer un texte (clic droit sur rectangle, puis « Modifier le texte »), et saisir le texte du bouton (par exemple : « Nouvelle partie »),Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant
  • À nouveau clic-droit, puis « Affecter une macro », dans la fenêtre qui s’affiche nous allons alors simplement sélectionner l’instruction que nous venons de taper : « nouvellePartie »Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutantExcel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

 

    2.3. Fin de partie

 

Nous allons maintenant demander à Excel de déterminer automatiquement lorsqu’un jour à remporté la partie. Pour cela nous n’aurons pas besoin de macro-commande, nous allons uniquement utiliser une série de formules.

Dans la règle du morpion un joueur gagne lorsque celui-ci a réussi à placer trois pions sur une ligne, sur une colonne ou encore sur une diagonale.

Étant donné que les pions peuvent prendre la valeur « 1 », ou de « -1 », on peut en déduire qu’un joueur a gagné lorsqu'une ligne, une colonne ou une diagonale aura pour valeur « 3 » ou « -3 ».

Il va donc nous suffire effectuer une somme sur chacune de ces zones.

Commençons par calculer la somme des valeurs des cellules situées sur la première ligne :

  • Dans une des cellules situées en dessous du plateau, par exemple dans la cellule « C8 », nous allons insérer la formule suivante : « =SOMME(B3:D3) », puis valider en appuyant sur la touche [Entrée] du clavier,

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

  • Nous allons procéder de la même manière pour les deux autres lignes :
    • En cellule « C9 » : : « =SOMME(B4:D4) »,
    • En cellule « C10 » : : « =SOMME(B5:D5) »,
  • Puis à la suite, nous allons sommer les valeurs contenues dans les colonnes :
    • En cellule « C11 » : : « =SOMME(B3:B5) »,
    • En cellule « C12 » : : « =SOMME(C3:C5) »,
    • En cellule « C13 » : : « =SOMME(D3:D5) »,
  • En enfin les deux diagonales :
    • En cellule « C14 » : : « =SOMME(B3;C4;D5) » (remarquez ici que nous séparons chacune des cellules par un point-virgule car il s’agit de cellules non adjacentes),
    • En cellule « C15 » : : « =SOMME(B5;C4;D3) », Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Maintenant, nous disposons d’un tableau qui va synthétiser l’ensemble des combinaisons existantes sur notre plateau.

À droite de chacune des formules que nous venons d’insérer, nous allons maintenant chercher à savoir si une des cellules est égale à « 3 » ou à « -3 », synonyme de victoire pour l’un des deux joueurs :

  • Nous allons commencer par sélectionner les cellules juste à droite des cellules dans lesquelles nous avons inséré les formules : les cellules « D8 » à « D15 ». Pour cela nous cliquons sur la première de ces cellules (« D8 »), puis en faisant glisser la souris nous sélectionnons les cellules suivantes également,
  • Nous saisissons la formule suivante : « =SI(ABS(C8)=3;C8/3;0) » :Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant
    • Nous cherchons dans un premier temps à savoir si « C8 » est égale à « 3 », ou à « -3 », en demandant à Excel la valeur absolue de cette cellule,
    • Si tel est le cas, alors nous retournons la valeur de cette cellule, que nous divisons par trois pour avoir l’identifiant du joueur vainqueur (« 1 » ou « -1 »).
    • Dans le cas contraire, nous retournons simplement « 0 »
  • Nous validons cette formule en appuyant en même temps sur les touches [Ctrl] et [Entrée], afin de valider la formule pour toutes les cellules sélectionnées

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Enfin, pour récupérer l’identifiant du vainqueur, il suffit d'effectuer une somme sur cette colonne de formules, en insérant dans une nouvelle cellule (par exemple en position « G9 ») une formule qui va juste effectuer la somme de ces cellules :

=SOMME(D8:D15)

 

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Nous allons maintenant nommer cette cellule en « _vainqueur », et à présent à chaque tour de jeu, il suffira de regarder si cette cellule vos « 0 » et si ce n'est pas le cas (donc la cellule vaut « 1 » ou « -1 »), alors cela voudra dire qu’un joueur a gagné.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Nous allons modifier notre procédure de la manière suivante :

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Not Intersect([_plateau], Target) Is Nothing Then

        If Target = "" Then

            Target = [_joueur]

            [_joueur] = -1 * [_joueur]

           

            If [_vainqueur] <> 0 Then

                MsgBox "Le joueur " & [_vainqueur] & " a gagné la partie !"

                Call nouvellePartie

            End If

        End If

    End If

End Sub

Le moteur du jeu est maintenant terminé, vous pouvez ainsi commencer à vous amuser à le tester en cliquant sur le bouton « Nouvelle partie ».

Lorsque l’un des joueurs gagne la partie, un message est affiché et une nouvelle partie est lancée automatiquement.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Nous pouvons maintenant masquer les lignes que nous venons de créer dans notre feuille de calcul et modifier l’apparence des jetons pour les rendre plus attrayant.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

 

    2.4. Insérer des jetons avec la mise-en-forme conditionnelle

 

Nous allons à présent utiliser la mise-en-forme conditionnelle pour afficher des symboles à la place des nombres « 1 » et « -1 ».

Pour cela nous allons commencer par sélectionner les neuf cases de notre plateau, ce qui va générer immédiatement une erreur VBA.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

En effet nous avons sélectionné plusieurs cellules du plateau ce qui ne plaît pas à notre procédure. Pour corriger cette erreur, nous allons effectuer un premier contrôle en tout début de procédure afin de quitter cette dernière lorsque plusieurs cellules sont sélectionnées :

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Private Sub Worksheet_SelectionChange(ByVal Target As Range)


    If Target.Count > 1 Then Exit Sub


    If Not Intersect([_plateau], Target) Is Nothing Then

        If Target = "" Then

            Target = [_joueur]

            [_joueur] = -1 * [_joueur]

           

            If [_vainqueur] <> 0 Then

                MsgBox "Le joueur " & [_vainqueur] & " a gagné la partie !"

                Call nouvellePartie

            End If

        End If

    End If

End Sub

 

Nous utilisons ici la propriété « count » de la variable « Target » afin de savoir combien de cellules ont été sélectionnées. Si plusieurs cellules sont effectivement sélectionnées, alors nous sortons directement de la procédure avec l’instruction « Exit Sub ».

Revenons sur notre feuille de calculs afin de sélectionner les neuf cases de notre plateau. Désormais cela ne devrait plus causer de problème.

Pour insérer une mise-en-forme conditionnelle, rendons-nous dans l’onglet « Accueil » du ruban, puis dans « Mise-en-forme conditionnelle », choisissons « Jeux d’icônes » afin de sélectionner l’un des jeux proposés par Excel.

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Vous constaterez ainsi que des jetons sous forme d’icônes ont été ajoutés à côté des chiffres.

Pour supprimer ces chiffres, revenons dans le menu « Mise-en-forme conditionnelles », puis cette fois-ci nous choisissons l’option « Gérer les règles ».

Double-cliquons sur la mise-en-forme conditionnelle que nous venons de créer afin de cocher la case « Afficher l'icône uniquement ». Validons en cliquant sur le bouton [OK].

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Afin de conserver une cohérence entre l'identifiant du joueur (en haut de la feuille) et le jeton qui va être posé, nous allons appliquer la mise-en-forme conditionnelle que nous venons juste de créer à la formule joueurs. Pour cela nous allons revenir dans « Gérer les règles », dans le menu déroulant en haut de la fenêtre, nous allons sélectionner l’affichage de toutes les règles de mise en forme conditionnelle « Pour cette feuille de calculs ».

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Puis nous allons simplement ajouter les coordonnées de la cellule « _joueur » (« D1 » dans notre exemple) à la suite (en séparant les coordonnées du plateau et cette dernière avec un point-virgule).

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Excel formation - video comment creer un jeu sur excel tic tac toe le jeu du morpion tutoriel vba debutant

Voilà notre jeu est maintenant terminé !

Il ne nous restera plus qu'à mettre un petit peu de mise-en-forme pour le rendre plus conviviable (par exemple supprimer le quadrillage, ajouter un titre, ajouter des illustrations, …).



Articles qui pourraient vous intéresser

Comment remplir automatiquement des cellules d'un tableau Excel avec la complétion automatique
Comment regrouper (ou pas !) les dates d’un tableau croisé dynamique (TCD) sur Excel ?
Comment connecter Excel sur Internet, sans VBA ?
Comment traduire automatiquement des fonctions Excel dans leur version originale ?
Comment analyser les résultats d’un sondage ou questionnaire avec Excel ?
Comment utiliser la fonction SOMME.SI pour effectuer des recherches sur des textes sur Excel ?
Comment calculer et étudier des écarts budgétaires avec Excel ?
Comment verrouiller et protéger un objet (graphique, image, zone de texte…) sur Excel ?
Comment formater des dates correctement dans Excel ?
Comment protéger le formatage des cellules tout en autorisant la saisie de données dans Excel ?
Comment transformer une photo en tableau Excel ?
Comment créer un publipostage automatique avec Excel ? (sans Word !)