Application Python en ligne de commande pour gérer des tournois d'échecs. Développée en suivant l'architecture MVC (Modèle-Vue-Contrôleur) et les principes de la programmation orientée objet.
- Ajout de nouveaux joueurs
- Affichage de tous les joueurs (tri alphabétique)
- Recherche de joueurs par ID
- Persistance des données en JSON
- Création de tournois avec paramètres personnalisables
- Sélection des joueurs participants
- Génération automatique des appariements
- Évitement des matchs en double
- Gestion des tours successifs
- Calcul automatique des classements
- Liste complète des joueurs
- Liste de tous les tournois
- Détails complets d'un tournoi
- Classement
TOURNOI_ECHECS/
│
├── main.py # Point d'entrée principal
├── requirements.txt # Dépendances Python
├── .flake8 # Configuration flake8
├── .gitignore # Fichiers ignorés par Git
├── README.md # Ce fichier
│
├── models/ # Modèles
│ ├── __init__.py
│ ├── player.py # Modèle Joueur
│ ├── tournament.py # Modèle Tournoi
│ ├── match.py # Modèle Match
│ └── round.py # Modèle Tour
│
├── views/ # interface utilisateur
│ ├── __init__.py
│ ├── main_view.py # Vue du menu principal
│ ├── player_view.py # Vue pour les joueurs
│ ├── tournament_view.py # Vue pour les tournois
│ ├── round_view.py # Vue pour les tours et matchs
│ └── report_view.py # Vue pour les rapports
│
├── controllers/ # Contrôleur
│ ├── __init__.py
│ ├── main_controller.py # Contrôleur principal
│ ├── player_controller.py # Contrôleur des joueurs
│ ├── tournament_controller.py # Contrôleur des tournois
│ └── report_controller.py # Contrôleur des rapports
│
├── utils/ # Utilitaires et helpers
│ ├── __init__.py
│ └── db_manager.py # Gestion des fichiers JSON
│
├── data/ # Données persistantes
│ ├── players.json # Base de données des joueurs
│ └── tournaments.json # Base de données des tournois
│
└── flake8_rapport/ # Rapport de conformité PEP8
└── index.html
- Python 3.13 ou supérieur
- pip (gestionnaire de paquets Python)
- Cloner le repository
git clone https://github.com/allouchesofiane/tournoi_echecs.git
cd tournoi_echecs- Créer un environnement virtuel
# Windows
python -m venv venv
venv\Scripts\activate
3. **Installer les dépendances**
```bash
pip install -r requirements.txtpython main.py1. Gestion des joueurs → Ajouter, afficher, rechercher
2. Gestion des tournois → Créer, gérer les tours, classements
3. Rapports → Diverses vues
4. Quitter → Fermer l'application
- Créer des joueurs (minimum 2, idéalement nombre pair)
- Créer un tournoi et sélectionner les participants
- Démarrer le premier tour (appariement aléatoire)
- Saisir les résultats des matchs
- Créer les tours suivants (appariement par score)
- Consulter le classement final
{
"last_name": "dubois",
"first_name": "bertrand",
"date_of_birth": "03/03/2000",
"national_id": "VB12547"
}{
"name": "tournoi pour les amateurs",
"location": "boulogne",
"date": "05/11/2026",
"rounds": 4,
"time_control": "Blitz",
"description": "un tournoi pour les amateurs",
"players": [
"DE12456",
"FR25418",
"GT12548",
"SZ14527",
"HY25413",
"VB12547"
],
"rounds_list": []
}- PEP 8 : Respect des conventions Python
- Ligne maximale : 119 caractères
- Docstrings : Pour toutes les classes et méthodes
- Modèles : Aucune dépendance vers les vues
- Vues : Aucune logique métier
- Contrôleurs : Orchestration uniquement
# Générer le rapport HTML
flake8 . --format=html --htmldir=flake8_rapport
# Vérification dans le terminal
flake8 .- Interface graphique
- Base de données SQL
Ce projet est développé dans le cadre d'une formation.