Application en ligne de commande développée en Python pour gérer des tournois d'échecs selon le système suisse, fonctionnant entièrement hors ligne.
Fonctionnalités principales
- Création et reprise de tournois (nom, lieu, dates, description, nombre de tours)
- Gestion des joueurs (ajout, modification, classement par classement Elo ou ordre alphabétique)
- Génération automatique des rondes et appariements
- Saisie des scores et mise à jour des points
- Sauvegarde / chargement des données au format JSON (TinyDB)
- Rapports : classement général, joueurs, tous les tournois, matchs par ronde
Architecture : Modèle – Vue – Contrôleur (MVC) + Programmation Orientée Objet
Qualité du code : Respect strict de la PEP 8 (vérifié via flake8)
Dépendances : listées dans requirements.txt
Exécution : python main.py (menu interactif)
Consultez le rapport flake8-html dans le dossier reports/ pour la conformité du style.
Commencez tout d'abord par installer Python. Lancez ensuite la console, placez vous dans le dossier de votre choix puis clonez ce repository:
git clone https://github.com/Faaab84/projet_4.git
Placez vous dans le dossier , puis creer et demarrer l'environnement virtuel:
python -m venv env
Ensuite, activez-le.
env\Scripts\activate
Il ne reste plus qu'à installer les packages requis:
pip install -r requirements.txt
Vous pouvez enfin lancer le script:
python main.py
- Le menu joueurs vous permets de créer un joueur avec un nom, prenom, date de naissance, et un identifiant unique.
- Vous pouvez egalement afficher la liste des joueurs.
- Le menu tournoi vous permets de démarrer un nouveau tournoi avec : (un nom de tournoi, un lieu du tournoi,un nombre de tour, description)
- Il faut au minimum 2 joueurs inscrit dans l'application pour pouvoir selectionner les joueurs pour le tournoi à demarrer.
- Une fois le tournoi demarrer des paires vont être generer,les joueurs seront dans un premier temps trié aleoiterement et ne se rencontrerons jamais deux fois durant le tournoi.
- Pour chaque match vous serez invité à indiqué le joueur gagnant ou si il y a egalité.
- Une fois que les matchs/tours sont terminés ou si les joueurs ont tous eu un adversaire unique.Le tournoi prend fin.
- Un classement du tournoi sera afficher par ordre decroissant de points ainsi que les resultats des matchs du tournoi.
- Le match etant terminé vous pouvez le consulter par le menu Rapport en selectionnant le bon nom du tournoi.
- Vous pouvez egalement à tout moment revenir au menu principale et/ou quitter l'application puis continuer un tournoi deja en cours.
- Lorsque vous sélectionnez cette option, vous pouvez consulter un tournoi terminez afin de voir le classement et les resultats des matchs lors des differend tours.
Rapport Flake8
activez l'environnement virtuel.
env\Scripts\activate
puis faites la commande
flake8 --format=html --htmldir=flake-report
- Le rapport sera généré dans le dossier flake-report.