From 004a7fe8fbe34a2f7396c4a27e46e0bfbb45e995 Mon Sep 17 00:00:00 2001 From: Heuzef Date: Tue, 27 Feb 2024 17:32:22 +0100 Subject: [PATCH] Init repo --- vote_borda.py | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ winner.txt | 12 +++++++++ 2 files changed, 99 insertions(+) create mode 100644 vote_borda.py create mode 100644 winner.txt diff --git a/vote_borda.py b/vote_borda.py new file mode 100644 index 0000000..8ed6966 --- /dev/null +++ b/vote_borda.py @@ -0,0 +1,87 @@ +class Borda: + """ + Classe pour implémenter la méthode de Borda. + https://fr.wikipedia.org/wiki/M%C3%A9thode_Borda + + Args: + projects: La liste des projets soumis au vote. + """ + + def __init__(self, projects): + self.projects = projects + self.scores = {} + + def calculate_scores(self, votes): + """ + Calcule le score de Borda pour chaque projet. + + Args: + votes: Une liste de listes contenant les votes des membres du groupe. + + Returns: + Un dictionnaire avec les scores de Borda pour chaque projet. + """ + + for vote in votes: + for i, project in enumerate(vote): + if project not in self.scores: + self.scores[project] = 0 + self.scores[project] += len(vote) - i - 1 + + def get_winner(self): + """ + Retourne le projet avec le score de Borda le plus élevé. + + Returns: + Le projet gagnant. + """ + + winner = None + max_score = -float("inf") + for project, score in self.scores.items(): + if score > max_score: + max_score = score + winner = project + + return winner + +# Place aux votes +projects = ["A", "B", "C", "D", "E", "F", "G", "H", "I"] + +projects_name = { + "A": "Accidents routiers en France", + "B": "Blood cells classification", + "C": "Classification de produits e-commerce Rakuten", + "D": "Emission de CO2 par les véhicules", + "E": "Prévision météo en Australie", + "F": "Reconnaissance de champignons", + "G": "Reconnaissance de plantes", + "H": "Supply Chain - Satisfaction des clients", + "I": "Temps de Réponse de la Brigade des Pompiers de Londres", +} + +borda = Borda(projects) + +votes = [ + ["A", "B", "C", "D", "E", "F", "G", "H", "I"], # Heuzef - @heuzef + ["A", "B", "C", "D", "E", "F", "G", "H", "I"], # Yvan + ["A", "B", "C", "D", "E", "F", "G", "H", "I"], # Viktoriia + ["A", "B", "C", "D", "E", "F", "G", "H", "I"], # Florent - @FConstantMovework +] + +borda.calculate_scores(votes) + +winner = borda.get_winner() + +print(f""" +Rires et roulements de tambour ... Le suspense est à son comble ... +Après un vote palpitant, c'est avec une immense joie que nous vous annonçons le grand gagnant : + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +LE PROJET {winner} : {projects_name[winner]} !!! +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Applaudissements nourris et cris de joie s'il vous plaît ! +N'oubliez pas, il n'y a pas de perdants aujourd'hui, seulement des participants formidables ! +Merci à tous d'avoir participé à ce vote ! +""") \ No newline at end of file diff --git a/winner.txt b/winner.txt new file mode 100644 index 0000000..897b525 --- /dev/null +++ b/winner.txt @@ -0,0 +1,12 @@ + +Rires et roulements de tambour ... Le suspense est à son comble ... +Après un vote palpitant, c'est avec une immense joie que nous vous annonçons le grand gagnant : + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +LE PROJET A : Accidents routiers en France !!! +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Applaudissements nourris et cris de joie s'il vous plaît ! +N'oubliez pas, il n'y a pas de perdants aujourd'hui, seulement des participants formidables ! +Merci à tous d'avoir participé à ce vote ! +