From 31c2b39fa49f670f87b63e5724c9ca800472cbc3 Mon Sep 17 00:00:00 2001 From: yann Date: Thu, 13 Feb 2025 12:01:01 +0100 Subject: [PATCH 1/4] fix some minor issues --- controllers/base.py | 25 +++---------------------- views/base.py | 5 +++++ 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/controllers/base.py b/controllers/base.py index 9205657..0f29f36 100644 --- a/controllers/base.py +++ b/controllers/base.py @@ -1,6 +1,6 @@ -from ChessTournament.models.models import (Player, Round, Match, +from models.models import (Player, Round, Match, MatchHistory) -from ChessTournament.models.models import DATAPATH, PLAYERFILE, TOURNAMENTFILE +from models.models import DATAPATH, PLAYERFILE, TOURNAMENTFILE from random import shuffle @@ -109,9 +109,7 @@ class Application: self.tournament.players_list = self.save.player_load() self.save.tournament_write(self.tournament) else: - print("Placez un fichier joueur dans le répertoire data" - "ou créez des nouveaux joueurs depuis le menu") - print() + self.view.display_player_instructions() self.menu_manager() def run_tournament(self): @@ -246,20 +244,3 @@ class Application: self.view.display_winner(self.tournament.players_list) self.view.display_scores(self.tournament.players_list) self.menu_manager() - - -class CheckMatch: - pass - - -class MenuManager: - pass - - -class TournamentManager: - def __init__(self): - pass - - -class UserManager: - pass diff --git a/views/base.py b/views/base.py index 70fb14f..b5e33b9 100644 --- a/views/base.py +++ b/views/base.py @@ -140,3 +140,8 @@ class View: def display_error(self): print("Erreur de saisie, recommencez;") + + def display_player_instructions(self): + print("Placez un fichier joueur dans le répertoire data " + "ou créez des nouveaux joueurs depuis le menu") + print() -- 2.39.5 From bc8f73beaf3d6df07f70329c92b54e2b791d6bc2 Mon Sep 17 00:00:00 2001 From: yann Date: Thu, 13 Feb 2025 12:02:08 +0100 Subject: [PATCH 2/4] add break on quit to avoid loop --- controllers/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/base.py b/controllers/base.py index 0f29f36..7b092b9 100644 --- a/controllers/base.py +++ b/controllers/base.py @@ -195,7 +195,7 @@ class Application: # Quit if menu_choice == "4": print("Bye") - + break # Rapports elif menu_choice == "3": rapport_choice = self.menu.items(2) -- 2.39.5 From d115126afb80440f91ad4841e53d8541ef50aef0 Mon Sep 17 00:00:00 2001 From: yann Date: Thu, 13 Feb 2025 12:07:52 +0100 Subject: [PATCH 3/4] remove some remaining debug prints --- controllers/base.py | 9 +-------- views/base.py | 8 -------- 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/controllers/base.py b/controllers/base.py index 7b092b9..91a1956 100644 --- a/controllers/base.py +++ b/controllers/base.py @@ -1,8 +1,6 @@ -from models.models import (Player, Round, Match, - MatchHistory) +from models.models import (Player, Round, Match, MatchHistory) from models.models import DATAPATH, PLAYERFILE, TOURNAMENTFILE - from random import shuffle import os import json @@ -63,8 +61,6 @@ class Save: data = { tournament.name: tournament.data() } - print(data) - if self.load_file(TOURNAMENTFILE): data_tmp = self.load_file(TOURNAMENTFILE) data_tmp[tournament.name] = tournament.data() @@ -130,7 +126,6 @@ class Application: self.scores(self.round.match_list) self.sort_by_score() self.tournament.round_list.append(self.round.save()) - print("après maj", self.tournament.round_list) self.save.tournament_write(self.tournament) self.view.display_round_info(self.round) self.view.display_scores(self.tournament.players_list) @@ -241,6 +236,4 @@ class Application: print("c'est parti") self.create_tournament() self.run_tournament() - self.view.display_winner(self.tournament.players_list) - self.view.display_scores(self.tournament.players_list) self.menu_manager() diff --git a/views/base.py b/views/base.py index b5e33b9..2b85946 100644 --- a/views/base.py +++ b/views/base.py @@ -91,14 +91,6 @@ class View: except ValueError: print("Veuillez entrer un chiffre") - def display_winner(self, player_list): - winner = max(player_list, key=lambda t: t.score) - print("Le gagnant est :", - winner.name, - winner.lastname, - "avec un score de :", - winner.score) - def display_players(self, player_list_to_display): print("Liste des joueurs :") for player in player_list_to_display: -- 2.39.5 From 29a56eceaa778c2b4c107e06cd78d93a268558de Mon Sep 17 00:00:00 2001 From: yann Date: Thu, 13 Feb 2025 15:44:04 +0100 Subject: [PATCH 4/4] adjust match issue, add total score to tournament display --- controllers/base.py | 14 +++++++--- models/models.py | 4 ++- views/base.py | 62 +++++++++++++++++++++++++-------------------- 3 files changed, 48 insertions(+), 32 deletions(-) diff --git a/controllers/base.py b/controllers/base.py index 91a1956..d1d1b0d 100644 --- a/controllers/base.py +++ b/controllers/base.py @@ -110,6 +110,7 @@ class Application: def run_tournament(self): shuffle(self.tournament.players_list) + self.view.display_players(self.tournament.players_list) for each_round in range(1, self.tournament.total_round + 1): self.tournament.current_round += 1 self.round = Round() @@ -119,6 +120,7 @@ class Application: self.round.start_time = self.round.get_time() # create matches TODO : check from history self.round.match_list = self.create_match() + self.match_history.add(self.round.match_list) # display matches self.view.display_matches(self.round.match_list) self.view.prompt_for_scores() @@ -156,9 +158,15 @@ class Application: for i in range(0, len(self.tournament.players_list), 2): j += 1 match = Match() - match.player1 = self.tournament.players_list[i] - match.player2 = self.tournament.players_list[i+1] - match_list.append(match) + try: + match.player1 = self.tournament.players_list[i] + match.player2 = self.tournament.players_list[i+1] + if self.match_history.check(match): + # match.player2 = self.tournament.players_list[i+2] + print("deja joue") + match_list.append(match) + except IndexError: + pass return match_list def scores(self, match_list) -> list: diff --git a/models/models.py b/models/models.py index c6f93dc..ebb8037 100644 --- a/models/models.py +++ b/models/models.py @@ -22,6 +22,7 @@ class Tournament: self.round_list = [] self.current_round = 0 self.players_list = players_list + self.scores = [] self.description = "Pas de description" def __str__(self): @@ -67,7 +68,8 @@ class Player: 'prénom': self.name, 'nom': self.lastname, 'date de naissance': self.birthdate, - 'ine': self.ine + 'ine': self.ine, + 'score': self.score } return player_dict diff --git a/views/base.py b/views/base.py index 2b85946..85c5c6f 100644 --- a/views/base.py +++ b/views/base.py @@ -34,23 +34,6 @@ class View: input(f"Prêt à lancer le {round.name} ? (y)") return True - def display_matches(self, match_list): - print("Liste des matchs : ") - for match in match_list: - print(match.player1.name, match.player1.lastname.upper(), - "contre", match.player2.name, match.player2.lastname.upper(), - "(", match, ")" - ) - - def display_round_info(self, round): - print("\n -> ", round) - - def display_scores(self, players_list): - print("\nLes scores sont :") - print("-----------------") - for i in players_list: - print(i.ine, i.name, i.lastname, ":", i.score) - def prompt_for_new_player(self) -> dict: print("Enregistrez un nouveau joueur :\n") lastname = input("Nom de famille ? : ") @@ -77,6 +60,16 @@ class View: tournament_details['total_round'] = int(total_round) return tournament_details + def prompt_tournament_to_display(self, tournament_list_to_display): + i = 0 + temp_list = [] + for tournament in tournament_list_to_display: + i += 1 + print(i, ".", tournament) + temp_list.append(tournament) + num = int(input("Numéro du tournoi à afficher ? ")) + return temp_list[num - 1] + def input_scores(self, match, count): print("Scores pour le match", count, " :") while True: @@ -91,6 +84,23 @@ class View: except ValueError: print("Veuillez entrer un chiffre") + def display_matches(self, match_list): + print("Liste des matchs : ") + for match in match_list: + print(match.player1.name, match.player1.lastname.upper(), + "contre", match.player2.name, match.player2.lastname.upper(), + "(", match, ")" + ) + + def display_round_info(self, round): + print("\n -> ", round) + + def display_scores(self, players_list): + print("\nLes scores sont :") + print("-----------------") + for i in players_list: + print(i.ine, ':', i.name, i.lastname, i.score) + def display_players(self, player_list_to_display): print("Liste des joueurs :") for player in player_list_to_display: @@ -103,23 +113,16 @@ class View: "le", tournament_list_to_display[tournament]['start']) - def prompt_tournament_to_display(self, tournament_list_to_display): - i = 0 - temp_list = [] - for tournament in tournament_list_to_display: - i += 1 - print(i, ".", tournament) - temp_list.append(tournament) - num = int(input("Numéro du tournoi à afficher ? ")) - return temp_list[num - 1] - def display_tournament_detail(self, tournament_to_display): i = tournament_to_display print("Nom du tournoi : ", i['name']) print("Lieu : ", i['location']) + print("Description : ", i['description']) print("Le tournoi a débuté le : ", i['start']) print("Et s'est terminé le : ", i['end']) - print("Les participants étaient : \n", i['players']) + print("\nLes participants étaient : ") + for j in i['players'] : + print(j['ine'], "-", j['prénom'], str.upper(j['nom'])) print("\nLes matches et leurs résultats étaient :") for j in i['rounds']: print(j['Nom']) @@ -129,6 +132,9 @@ class View: for k in j['Matches']: print(k) print() + print("Les scores finaux :") + for j in i['players']: + print(j['prénom'], str.upper(j['nom']), ":", j['score']) def display_error(self): print("Erreur de saisie, recommencez;") -- 2.39.5