Skip to content

ZTOUF/Connect4_CONETO

Repository files navigation

Puissance 4 (Connect Four) - Application de Jeu

Description

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.

Auteur

ATOUF
Projet académique - Ingénierie Informatique

Prérequis

Version Python

  • Python 3.8 ou supérieur (requis pour le support de typing.Optional)
  • Recommandé: Python 3.9, 3.10 ou 3.11

Bibliothèques requises

  • tkinter (généralement inclus avec Python)
  • pillow (PIL) - pour le traitement d'images

Installation

1. Vérifier la version Python

python --version
# ou
python3 --version

2. Installer les dépendances

pip install -r requirements.txt
# ou
pip3 install -r requirements.txt

3. Vérifier l'installation de tkinter

Tkinter 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

Utilisation

Lancer l'application

Depuis le terminal

cd Code
python main.py

ou

cd Code
python3 main.py

Depuis un IDE

  1. Ouvrir le dossier Code dans votre IDE (PyCharm, VS Code, etc.)
  2. Exécuter directement le fichier main.py

Structure du projet

├── 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

Fonctionnalités

Modes de jeu

  • Joueur vs Joueur : deux joueurs humains
  • Joueur vs Bot : jouer contre l'IA

Options de configuration

  • 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)

Fonctionnalités d'interface

  • 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é

Algorithmes implémentés

  1. Random : coups aléatoires
  2. Minimax : exploration exhaustive de l'arbre de jeu
  3. Alpha-Bêta : optimisation du Minimax avec élagage (4,56× plus rapide à profondeur 5)

Tests et Benchmarks

Exécuter les tests unitaires

cd Code
python -m pytest tests/

Exécuter les benchmarks

cd Code/benchmarks
python bench_board_implementation.py
python bench_algorithms.py

Documentation technique

  • Documentation Doxygen : Voir doxy_docs/html/index.html
  • Rapport complet : Voir Rapport_ATOUF.pdf
  • Diagrammes UML : Voir UML.pdf et dossier Genie_logiciel/

Limitations connues

  • Les fonctionnalités de sauvegarde/chargement de parties ne sont pas entièrement implémentées
  • Optimisé pour PC (non responsive pour mobile)

Perspectives d'évolution

  • 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

Licence

Projet académique - Tous droits réservés

Contact

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

About

Project created by Yahya Atouf during his 3rd year of software engineering at Polytech Tours.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages