From 29a56eceaa778c2b4c107e06cd78d93a268558de Mon Sep 17 00:00:00 2001 From: yann Date: Thu, 13 Feb 2025 15:44:04 +0100 Subject: [PATCH] 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;")