Static Badge
Static Badge

Static Badge

Menu

  1. Informations générales
  2. Liste pré-requis
  3. Création environnement
  4. Activation environnement
  5. Installation des librairies
  6. Exécution de l'application
  7. Utilisation de l'application
  8. Capture d'écran de l'interface
  9. Rapport avec flake8
  10. Développement
  11. Auteur et contact

Projet Chess Tournament Icon chess

  • Projet de création d'un programme, dont la structure et l'utilisation et la gestion d'un tournoi d'échecs.
    Le programme utilise le système suisse, la procédure d'appariement et d'organisation du programme respect ce même système.
    le premier tour (appelé "rondes" aux échecs) est basé sur le classement elo des joueurs, ensuite entre le premier et le dernier tour la création d'appariement des paires est faite de façon aléatoire et non-répétitives.
     

  • Pour le dernier, tour l'appariement est fait sur le score s'ils sont égaux, alors l'appariement est fait par le classement elo.
     

  • Par conséquent, de cette manière les joueurs les plus forts se rencontrent pour le tour final, il en est de même pour les joueurs les plus faibles. Ainsi, avec ce système, chaque joueur participe au même nombre de matchs.
     

  • Le programme est fonctionnel sur un format de 4 ou 8 joueurs avec un minimum de 4 tours par défaut.
    Il est architecturé et construit sur le design pattern MVC (Modèles - Vues - Controlleurs), l'utilisation de la librairie TinyDB est nécessaire pour sauvegarder les joueurs et les tournois.


Retour en haut 🡅

Liste pré-requis

Application conçue avec les technologies suivantes :

  • Python v3.7.2 choisissez la version adaptée a votre ordinateur et système.

  • Python est disponible à l'adresse suivante ➔ https://www.python.org/downloads/
     

  • TinyDB v4.7.1

  • Windows 7 professionnel SP1
     

  • Les scripts Python s'exécute depuis un terminal.

    • Pour ouvrir un terminal sur Windows, pressez la touche windows + r et entrez cmd.
    • Sur Mac, pressez la touche command + espace et entrez terminal.
    • Sur Linux, vous pouvez ouviri un terminal en pressant les touches Ctrl + Alt + T.

Retour en haut 🡅

Création de l'environnement virtuel

  • Installer une version de Python compatible pour votre ordinateur.
  • Une fois installer ouvrer le cmd (terminal) placer vous dans le dossier principale (dossier racine).

Taper dans votre terminal :

$ python -m venv env

Note : Un répertoire appelé env doit être créé.


Retour en haut 🡅

Activation de l'environnement virtuel

  • Placez-vous avec le terminal dans le dossier principale (dossier racine).

Pour activer l'environnement virtuel créé, il vous suffit de taper dans votre terminal :

$ env\Scripts\activate.bat
  • Ce qui ajoutera à chaque ligne de commande de votre terminal (env).

Pour désactiver l'environnement virtuel, il suffit de taper dans votre terminal :

$ deactivate

Retour en haut 🡅

Installation des librairies

  • Le programme utilise plusieurs librairies externes et modules de Python, qui sont répertoriés dans le fichier requirements.txt.
  • Placez-vous dans le dossier où se trouve le fichier requirements.txt avec le terminal, l'environnement virtuel doit être activé.
  • Pour faire fonctionner le programme, il vous faudra installer les librairies requises.
  • À l'aide du fichiers requirements.txt mis à disposition.

Taper dans votre terminal la commande :

$ pip install -r requirements.txt

Retour en haut 🡅

Exécution de l'application

  • Pour exécuter le programme placez vous dans le dossier principale (dossier racine) avec le terminal.

Note : L'environnement virtuel doit être activé.

Taper dans votre terminal la commande :

$ python main.py

Retour en haut 🡅

Utilisation de l'application

Le menu principal est composé de 4 sous-menus.

  • Créer un tournoi

    • Le programme permet de créer, gérer et sauvegarder des tournois d'échecs.
    • Pendant le tournoi, vous serez invité à saisir les résultats à la fin de chaque tour.
    • le classement est accessible après chaque tour ainsi que sa mise à jour si nécessaire.
    • A la fin du tournoi une mise à jour manuel ou automatique peut-être faite.
       
  • Créer des joueurs

    • Création de joueurs que vous pourrez charger pour un tournoi.
       
  • Charger un tournoi

    • Charge le tournoi sélectionné à partir de la base de données.
       
  • Voir des rapports

    • Dans cette section, vous pouvez consulter différents rapports.
    • Consulter le classement et les informations sur les joueurs.
    • Consulter les détails d'un tournoi : classements des joueurs, les tours et les matchs de chaque tournoi.

Retour en haut 🡅

Interface de l'application

. Capture d'écran du menu principal.

Menu principal

. Capture d'écran chargement de tournoi.

chargement tournoi

. Capture d'écran détails de tournoi.

chargement tournoi

. Capture d'écran rapport d'un tour et d'un match.

chargement tournoi

. Capture d'écran détails d'un match.

chargement tournoi

. Capture d'écran détails d'une mise à jour.

chargement tournoi


Retour en haut 🡅

Rapport avec flake8

  • Le repository contient un rapport flake8, qui n'affiche aucune erreur.
<div id="all-good">
    <span class="count sev-4">
      <span class="tick">&#x2713;</span>
    </span>
    <h2>All good!</h2>
    <p>No flake8 errors found in 16 files scanned.</p>
</div>
  • Il est possible d'en générer un nouveau en installant le module flake8 s'il n'est pas installé.

Installation de flake8 en entrant dans votre terminal la commande :

$ pip intall flake8-html
  • Créer un fichier .flake8 si il n'existe pas.

Ecrire le texte suivant dedans :

[flake8]
exclude = .git, env, __pycache__, .gitignore
max-line-length = 119
ignore = F841
filename = main_menu.py

Tapez dans votre terminal la commande :

$ flake8 --format=html --htmldir=flake-report
  • Un rapport sera généré dans le dossier flake-report.

Retour en haut 🡅

Développement

Actuellement en cours de développement

  • Une interface avec Tkinter.
  • Une fonction pour voir le temps total d'un tournoi.
  • Une fonction générant un fichier csv des tournois et des joueurs.

Retour en haut 🡅

Auteur et contact

Pour toute information supplémentaire, vous pouvez me contacter.
Bubhux: bubhuxpaindepice@gmail.com