Langage
Python
Bibliothèques
Pygame, NumPy
Année
2023
Statut
Terminé
À propos du projet
Gomoku_IA est une implémentation du jeu Gomoku (également connu sous le nom de Puissance 5), avec une intelligence artificielle adversaire. Dans ce jeu traditionnel d'origine japonaise, deux joueurs placent alternativement des pions sur une grille. Le premier joueur à aligner cinq pions de sa couleur, horizontalement, verticalement ou en diagonale, gagne la partie.
Ce projet a été développé pour explorer les algorithmes d'intelligence artificielle dans les jeux de plateau, notamment l'algorithme Minimax avec élagage alpha-bêta, une technique fondamentale utilisée dans les jeux à somme nulle comme les échecs, les dames, ou ici, le Gomoku.
Fonctionnalités principales
- Interface graphique pour jouer au Gomoku contre l'IA ou un autre joueur
- Intelligence artificielle basée sur l'algorithme Minimax avec élagage alpha-bêta
- Différents niveaux de difficulté ajustant la profondeur de recherche de l'IA
- Fonctions d'évaluation optimisées pour analyser efficacement l'état du jeu
- Système de notation des configurations (menaces ouvertes, menaces fermées, etc.)
- Historique des coups joués avec possibilité d'annuler un coup
- Détection automatique de la victoire et fin de partie
Défis techniques
-
Optimisation de l'algorithme Minimax
Le défi principal était d'optimiser l'algorithme Minimax pour qu'il puisse explorer un espace de recherche suffisant dans un temps raisonnable, étant donné la taille du plateau de Gomoku (19×19) et le grand nombre de coups possibles.
-
Fonction d'évaluation efficace
Développer une fonction d'évaluation précise qui puisse correctement estimer la valeur d'une position donnée, en tenant compte des différentes menaces et opportunités sur le plateau.
-
Réduction de l'espace de recherche
Mise en place de techniques pour ne considérer que les coups pertinents lors de la recherche, comme ne prendre en compte que les cases proches des pions déjà placés.
-
Équilibre entre temps de calcul et efficacité
Trouver le bon équilibre entre la profondeur de recherche de l'algorithme et le temps de réponse de l'IA pour garantir une expérience utilisateur fluide.
Résultats et apprentissages
Ce projet m'a permis d'approfondir mes connaissances en intelligence artificielle et en développement d'algorithmes :
- Maîtrise de l'algorithme Minimax et techniques d'élagage pour les jeux à somme nulle
- Conception et optimisation de fonctions d'évaluation pour les jeux de plateau
- Implémentation d'interfaces graphiques avec Pygame pour les jeux
- Analyse de la complexité algorithmique et techniques d'optimisation
- Manipulation efficace des structures de données pour représenter et traiter les états du jeu
L'IA développée est capable de jouer à un niveau intermédiaire contre des joueurs humains, avec des temps de réponse raisonnables. Elle utilise des stratégies avancées comme la défense contre les menaces et la création d'opportunités d'alignement.
Comment jouer
-
Installation
Cloner le dépôt et installer les dépendances requises (Pygame et NumPy) :
pip install pygame numpy
-
Lancement du jeu
Exécuter le fichier principal :
python main.py
-
Comment jouer
Utilisez la souris pour placer vos pions sur la grille. L'IA jouera automatiquement après votre coup. Le premier joueur à aligner 5 pions gagne la partie.
-
Options
Vous pouvez ajuster la difficulté de l'IA en modifiant la profondeur de recherche dans les paramètres du jeu.