Statut: 🚧 IN PROGRESS 🚧
Ce projet consiste à développer un jeu Gomoku jouable, integrant une intelligence artificielle capable de battre des joueurs humains. Gomoku un jeu de stratégie traditionnel joué sur un plateau de Go. L'IA utilise l'algorithme Min-Max avec une heuristique optimisée pour prendre des décisions rapides et efficaces.
Technologie : Développé en C++ avec une architecture orientée objet moderne.
- Developper le jeu Gomoku en c++
- Développer une interface graphique intuitive et agréable
- Créer une IA imbattable au Gomoku
- Implémenter l'algorithme Min-Max avec une heuristique performante
- Respecter les contraintes de performance (≤ 0.5s par coup en moyenne)
- Plateau : 19x19
- Victoire : Aligner 5 pierres ou plus
- Joueurs : 2 Joueurs tour par tour
- Capturer une paire de pierres adverses en les encerclant
- Condition de victoire : Capturer 10 pierres adverses au total
- Les intersections libérées peuvent être rejouées
- Un alignement de 5 ne gagne que si l'adversaire ne peut pas le briser par capture
- Si un joueur a déjà perdu 4 paires et que l'adversaire peut en capturer une 5ème, victoire par capture
- Interdiction de jouer un coup qui crée deux alignements de trois libres simultanément
- Exception : Les double-trois créés par capture sont autorisés
- Langage : C++17
- Bibliothèque graphique : SFML 2.6.1
- Compilation : g++ avec Makefile
- Dépendances audio : OpenAL, Vorbis, FLAC
- Min-Max avec élagage alpha-bêta
- Heuristique personnalisée pour l'évaluation des positions
- Arbre de recherche optimisé pour la performance
- Classes modulaires pour une maintenance facilitée
📦 Gomoku/
├── 🧠 src/ia/ # Intelligence artificielle
├── 🎮 src/game/ # Logique de jeu
├── 🖼️ src/gui/ # Interface graphique
├── 📁 src/utils/ # Utilitaires
├── 📁 include/ # Headers publics
└── 📄 main.cpp # Point d'entrée
🏗️ Architecture Orientée Objet
├── 🎯 class Game # Contrôleur principal du jeu
├── 🏁 class Board # Représentation du plateau 19x19
├── 🧠 class AI # Intelligence artificielle
├── 👤 class Player # Gestion des joueurs (Humain/IA)
├── 🎮 class GameEngine # Logique du jeu et règles
├── 🖼️ class GUI # Interface graphique
├── ⏱️ class Timer # Mesure de performance
└── 🐛 class Debug # Outils de débogage- Interface graphique : Interface graphique interactif
- Menu : Menu Principal
- Timer : Affichage du temps de réflexion de l'IA
- Sound design : Musique d'ambiance menu/jeu, effets
- Design avance : Interface utilisable et agréable
- Game customisation : Possibilitee de choix pack de theme au lancement (Couleur plateau/jetons)
- Humain vs Humain : Mode deux joueurs avec suggestions de l'IA
- IA vs Humain : Jeu contre l'intelligence artificielle
- Mode debug : Visualisation du processus de décision de l'IA
- Differents niveaux de difficultees : Choix entre Facile, Moyen et Standard
- Compilateur : g++ ou clang++ (support C++17)
- Bibliothèque graphique : SFML 2.6.1 (installé automatiquement)
- Make : Version récente
- CMake : Pour la compilation des dépendances
# Vérification des dépendances
make check-deps
# Installation automatique de SFML et dépendances
make SFML
# Vérification des dépendances
make check-deps# Compilation standard
make
# Compilation avec optimisations
make all
# Compilation en mode debug
make debug
# Nettoyage des fichiers objets
make clean
# Nettoyage complet
make fclean
# Recompilation complète
make re
# Installation dans ~/bin/
make install
# Désinstallation
make uninstall
# Aide et informations
make helpCXXFLAGS = -std=c++17 -Wall -Wextra -Werror -O2
SFML_DIR = /home/jgavairo/local
SFML_INCLUDE = -I$(SFML_DIR)/include
SFML_LIBS = -L$(SFML_DIR)/lib -lsfml-graphics -lsfml-window -lsfml-system -lsfml-audio# Installation des dépendances
make SFML
# Compilation du projet
make
# Installation globale (optionnel)
make install# Depuis le dossier du projet
./Gomoku
# Si installé globalement
Gomoku
# Mode debug (si implémenté)
./Gomoku --debug
# Aide
./Gomoku --help# Vérification des dépendances
make check-deps
# Compilation en mode debug
make debug
# Nettoyage
make clean
# Aide Makefile
make help- Temps de réflexion : ≤ 0.5 seconde par coup (en moyenne)
- Robustesse : Aucun crash autorisé, même en cas de manque de mémoire
- Optimisation : Profondeur de recherche et heuristique optimisées
- Implémentation correcte et complète
- Compréhension approfondie du fonctionnement
- Explication détaillée lors de la soutenance
- Précision de l'évaluation des positions
- Rapidité d'exécution
- Capacité d'adaptation aux stratégies adverses
- Implémentation correcte de toutes les règles spécifiées
- Gestion des cas particuliers (captures, double-trois, etc.)
Le projet inclut un système de debug permettant de :
- Visualiser l'arbre de recherche de l'IA
- Analyser les évaluations heuristiques
- Comprendre le processus de décision
- Optimiser les performances
Ce projet est développé dans le cadre d'un cursus académique. Les contributions externes ne sont pas acceptées pour des raisons d'intégrité académique.
🎯 Statut actuel : Configuration complète et Makefile fonctionnel
⏳ Prochaine étape : Implémentation de la fenêtre SFML et du plateau de jeu 19x19
Projet réalisé dans le cadre du cursus 42