Rapport de Projet : Jeu de Tic-Tac-Toe avec
Intelligence Artificielle (IA)
Aymen Raki, Fechtah Makhlof, Fayçal Malouka, Merzouk Messoude
December 7, 2024
Introduction
Ce projet consiste en la création d’un jeu de Tic-Tac-Toe en Java, avec une interface
graphique en utilisant la bibliothèque Swing et une Intelligence Artificielle (IA) qui permet
à un joueur de jouer contre l’ordinateur. Le projet a été réalisé par quatre étudiants :
• Aymen Raki : Il a principalement travaillé sur l’IA du jeu, l’implémentation du
modèle MVC, et la création de l’interface graphique avec Swing.
• Fechtah Makhlof : Il a contribué à la gestion des événements de l’interface et à
la logique du jeu.
• Fayçal Malouka : Il a participé au test et à la validation des fonctionnalités du
jeu.
• Merzouk Messoude : Il a travaillé sur la gestion des interactions entre la logique
du jeu et l’interface graphique.
Le jeu permet de jouer en mode solo contre l’IA ou en mode multijoueur entre deux
humains.
Fonctionnalités du Jeu
Le jeu de Tic-Tac-Toe que nous avons développé offre les fonctionnalités suivantes :
Modes de Jeu
Le jeu propose deux modes :
• Joueur contre Joueur : Deux joueurs humains peuvent jouer ensemble sur le
même appareil.
• Joueur contre IA : Un joueur humain affronte l’IA, qui est capable de jouer à
différents niveaux de difficulté (facile, moyen, difficile).
1
Interface Graphique
L’interface graphique du jeu a été créée en utilisant la bibliothèque Swing. L’écran prin-
cipal présente un tableau 3x3 avec des boutons pour chaque case du jeu. Ces boutons
sont utilisés par les joueurs pour marquer leur choix (X ou O). De plus, il y a des boutons
pour réinitialiser le jeu et revenir au menu principal.
Intelligence Artificielle (IA)
L’IA utilise un algorithme appelé Minimax. Cet algorithme permet à l’ordinateur de
choisir le meilleur coup possible en fonction de l’état actuel du jeu. En fonction du niveau
de difficulté sélectionné, l’IA peut être plus ou moins compétitive :
• Facile : L’IA choisit des coups au hasard, ce qui permet au joueur de gagner
facilement.
• Moyenne : L’IA prend des décisions un peu plus réfléchies, offrant ainsi un défi
modéré.
• Difficile : L’IA utilise l’algorithme Minimax pour choisir le meilleur coup à chaque
fois, ce qui rend le jeu très difficile à gagner.
Modèle-Vue-Contrôleur (MVC)
Nous avons utilisé l’architecture MVC pour organiser notre code de manière claire et lisible.
L’idée derrière MVC est de séparer les différentes parties du code afin que chaque partie ait
une responsabilité spécifique :
• Modèle : Contient la logique du jeu, comme les règles et les calculs nécessaires
pour déterminer si un joueur a gagné.
• Vue : Responsable de l’affichage du jeu à l’utilisateur. Elle contient la mise en page
graphique, notamment les boutons et le tableau de jeu.
• Contrôleur : Gère les interactions de l’utilisateur avec l’interface graphique et met
à jour le modèle en fonction des actions de l’utilisateur.
Défis Rencontrés
Tout au long du développement, plusieurs défis ont été rencontrés et ont nécessité des
solutions créatives :
Développement de l’Intelligence Artificielle
L’implémentation de l’IA a été l’un des défis les plus difficiles du projet. Le plus grand
obstacle était de rendre l’IA compétitive à différents niveaux de difficulté. Après plusieurs
essais, nous avons opté pour l’algorithme Minimax, qui fonctionne bien pour des jeux
simples comme Tic-Tac-Toe.
2
Gestion des Événements de Swing
Le développement de l’interface graphique a nécessité une gestion rigoureuse des événements
(clics sur les boutons, réinitialisation du jeu, etc.). Cela a été particulièrement difficile au
début, mais avec des tests réguliers, nous avons pu rendre l’interface fluide et réactive.
Organisation du Code avec MVC
Au début, il était difficile de bien comprendre comment organiser notre code avec le
modèle MVC. Cependant, une fois la structure bien en place, nous avons constaté que
cette organisation facilitait le travail en équipe et rendait le code beaucoup plus facile à
maintenir.
Conclusion
Ce projet nous a permis de créer un jeu de Tic-Tac-Toe fonctionnel avec une interface
graphique et une IA qui permet à un joueur de jouer contre l’ordinateur. Nous avons
utilisé l’architecture MVC pour organiser notre code et rendre le projet plus structuré.
Les principaux défis ont été l’implémentation de l’IA et la gestion de l’interface
graphique, mais nous avons réussi à les surmonter grâce à un travail d’équipe et une
bonne gestion du temps.
En fin de compte, nous avons appris l’importance d’une organisation claire du code,
l’utilisation d’algorithmes pour l’IA, et la gestion des événements dans une interface
graphique. Ce projet a été une excellente occasion d’appliquer nos connaissances en
programmation orientée objet, en Java, et en développement d’interfaces graphiques.