Ce programme permet de gérer des tournois d'échecs en local (hors ligne), en ligne de commande, avec une structure claire en architecture MVC (Modèle - Vue - Contrôleur) et une base de données légère (TinyDB).
- Ajouter et afficher des joueurs (avec nom, prénom, classement, identifiant national, ID unique).
- Créer et consulter des tournois (nom, lieu, dates, description, nombre de tours, sélection de joueurs).
- Lancer un tournoi avec appariements automatiques sans répétition (chaque joueur ne joue qu'une fois contre les autres).
- Gérer les rounds avec saisie sécurisée des scores et attribution automatique des BYEs si impair.
- Affichage clair des résultats et du classement final.
- Sauvegarde automatique après chaque round.
- Interface 100% en ligne de commande.
- Persistance des données avec TinyDB (format JSON).
- Code structuré en POO et conforme à la PEP8.
echiquier/
├── controllers/
│ ├── controleur_application.py
│ ├── controleur_joueur.py
│ ├── controleur_menu.py
│ └── controleur_tournoi.py
├── models/
│ ├── joueur.py
│ ├── tournoi.py
│ ├── match.py
│ ├── tour.py
│ ├── utils.py
│ └── database.py
├── views/
│ ├── vue_joueur.py
│ ├── vue_tournoi.py
│ ├── vue_match.py
│ └── vue_menu.py
├── data/
│ └── echiquier.json
├── main.py
└── requirements.txt
python main.py
pip install -r requirements.txt
python testFlake8.py
- Fichier TinyDB stocké ici :
data/echiquier.json
- Format de stockage léger avec TinyDB.
- ✅ Saisie guidée des scores avec validation sécurisée (1, 0.5, 0).
- ✅ Affichage automatique des matchs à jouer pour chaque round.
- ✅ Système de rounds intelligent évitant les doublons d’appariement.
- ✅ Attribution automatique de victoire pour BYE si nombre impair de joueurs.
- ✅ Suppression des doublons visuels dans les rapports (liste joueurs vs classement).
- Export des tournois (CSV, TXT, PDF).
- Interface graphique (Tkinter, web, etc.).
- Classement cumulé multi-tournois.
- Interface d’administration avec historique des performances.
Développé en 2025 par Steve Raffner — Développeur Python junior freelance.
Projet réalisé dans le cadre d'une formation OpenClassrooms. 🧠
Ce projet est libre d'utilisation pour un usage non-commercial ou éducatif.