Application de jeu Puissance 4 développée en Python avec interface graphique Tkinter. Le projet implémente plusieurs algorithmes d'intelligence artificielle (Minimax, Alpha-Bêta) et offre une interface utilisateur complète et accessible.
ATOUF
Projet académique - Ingénierie Informatique
- Python 3.8 ou supérieur (requis pour le support de
typing.Optional) - Recommandé: Python 3.9, 3.10 ou 3.11
- tkinter (généralement inclus avec Python)
- pillow (PIL) - pour le traitement d'images
python --version
# ou
python3 --versionpip install -r requirements.txt
# ou
pip3 install -r requirements.txtTkinter est normalement inclus avec Python. Pour vérifier :
python -c "import tkinter"Si tkinter n'est pas installé :
- Ubuntu/Debian:
sudo apt-get install python3-tk - Fedora:
sudo dnf install python3-tkinter - macOS: Tkinter est inclus avec Python officiel
- Windows: Tkinter est inclus avec Python officiel
cd Code
python main.pyou
cd Code
python3 main.py- Ouvrir le dossier
Codedans votre IDE (PyCharm, VS Code, etc.) - Exécuter directement le fichier
main.py
├── Code/ # Code source principal
│ ├── main.py # Point d'entrée de l'application
│ ├── algorithm/ # Algorithmes d'IA (Minimax, Alpha-Bêta, Random)
│ ├── board/ # Représentations du plateau (2D Array, Bitboard)
│ ├── game/ # Logique de jeu
│ ├── player/ # Gestion des joueurs (Human, Bot)
│ ├── ui/ # Interfaces utilisateur (Console, GUI)
│ ├── tests/ # Tests unitaires
│ └── benchmarks/ # Scripts de benchmark
├── benchmark_results/ # Résultats des tests de performance
├── doxy_docs/ # Documentation générée par Doxygen
├── Genie_logiciel/ # Diagrammes UML
├── Interface_Graphique/ # Maquettes et captures d'écran
├── Rapport_P4.pdf # Rapport final du projet
└── UML.pdf # Diagrammes UML complets
- Joueur vs Joueur : deux joueurs humains
- Joueur vs Bot : jouer contre l'IA
- Choix des couleurs de jetons
- Sélection du niveau de difficulté de l'IA (profondeur 1-7)
- Personnalisation des pseudonymes
- Configuration des dimensions du plateau
- Dev Options :
- Choix de la représentation du plateau (2D Array / Bitboard)
- Sélection de l'algorithme (Minimax / Alpha-Bêta)
- Activation des Visual Aids (accessibilité pour daltoniens)
- Undo/Redo des coups
- Interface console (mode texte)
- Interface graphique Tkinter avec le logo CONETO
- Dégradé violet-rose moderne
- Visual Aids pour l'accessibilité
- Random : coups aléatoires
- Minimax : exploration exhaustive de l'arbre de jeu
- Alpha-Bêta : optimisation du Minimax avec élagage (4,56× plus rapide à profondeur 5)
cd Code
python -m pytest tests/cd Code/benchmarks
python bench_board_implementation.py
python bench_algorithms.py- Documentation Doxygen : Voir
doxy_docs/html/index.html - Rapport complet : Voir
Rapport_ATOUF.pdf - Diagrammes UML : Voir
UML.pdfet dossierGenie_logiciel/
- Les fonctionnalités de sauvegarde/chargement de parties ne sont pas entièrement implémentées
- Optimisé pour PC (non responsive pour mobile)
- Implémentation complète de la sauvegarde/chargement
- Mode multijoueur en réseau
- Algorithmes d'IA avancés (MCTS, réseaux de neurones)
- Portage vers mobile/web
Projet académique - Tous droits réservés
Pour toute question concernant ce projet académique, veuillez me contacter via mon mail personnel: atouyehya@gmail.com, ou mon mail scolaire: yahya.atouf@etu.univ-tours.fr