From 058a3fd3d1f736f123b2924bc68e42d66a2f4ba3 Mon Sep 17 00:00:00 2001 From: "camille.turpin-etienne" Date: Mon, 3 Jun 2024 17:34:52 +0200 Subject: [PATCH] Classement marche pas --- Sources/CoreLibrary/Joueurs/Joueur.cs | 3 +- Sources/CoreLibrary/Manageurs/Manageur.cs | 2 +- .../CoreLibrary/Regles/ReglesClassiques.cs | 11 +++++++ Sources/MauiSpark/Pages/TableauScore.xaml.cs | 30 +++++++++---------- 4 files changed, 27 insertions(+), 19 deletions(-) diff --git a/Sources/CoreLibrary/Joueurs/Joueur.cs b/Sources/CoreLibrary/Joueurs/Joueur.cs index 50a0478..ba79014 100644 --- a/Sources/CoreLibrary/Joueurs/Joueur.cs +++ b/Sources/CoreLibrary/Joueurs/Joueur.cs @@ -48,8 +48,7 @@ namespace CoreLibrary.Joueurs public override string ToString() => Nom; - public int Statistique(IRegles regles, Statistique statistique) => - statistiques.GetValueOrDefault((regles, statistique), 0); + public int Statistique(IRegles regles, Statistique statistique) => statistiques.GetValueOrDefault((regles, statistique),0); public void IncrementerStatistique(IRegles regles, Statistique statistique) => statistiques[(regles, statistique)] = Statistique(regles, statistique) + 1; diff --git a/Sources/CoreLibrary/Manageurs/Manageur.cs b/Sources/CoreLibrary/Manageurs/Manageur.cs index 45285ba..3071a9f 100644 --- a/Sources/CoreLibrary/Manageurs/Manageur.cs +++ b/Sources/CoreLibrary/Manageurs/Manageur.cs @@ -8,7 +8,7 @@ namespace CoreLibrary.Manageurs public class Manageur { private readonly IPersistance persistance; - public readonly List joueurs; + private readonly List joueurs; private readonly List parties; public IReadOnlyList Joueurs => joueurs; diff --git a/Sources/CoreLibrary/Regles/ReglesClassiques.cs b/Sources/CoreLibrary/Regles/ReglesClassiques.cs index 6a8723c..a2718df 100644 --- a/Sources/CoreLibrary/Regles/ReglesClassiques.cs +++ b/Sources/CoreLibrary/Regles/ReglesClassiques.cs @@ -9,5 +9,16 @@ namespace CoreLibrary.Regles public int NbJoueurs => 2; public int NbTour => 12; public int TailleCode => 4; + + public override bool Equals(object? obj) + { + if (obj == null || obj is not ReglesClassiques) return false; + return true; + } + + public override int GetHashCode() + { + return HashCode.Combine(Nom, NbJoueurs, NbTour, TailleCode); + } } } diff --git a/Sources/MauiSpark/Pages/TableauScore.xaml.cs b/Sources/MauiSpark/Pages/TableauScore.xaml.cs index 774b560..940a46a 100644 --- a/Sources/MauiSpark/Pages/TableauScore.xaml.cs +++ b/Sources/MauiSpark/Pages/TableauScore.xaml.cs @@ -26,8 +26,8 @@ namespace MauiSpark.Pages public IEnumerable GetClassement(Func critereTri) { IEnumerable joueursTries = NbClique % 2 == 0 - ? MauiProgram.Manageur.joueurs.OrderBy(critereTri) - : MauiProgram.Manageur.joueurs.OrderByDescending(critereTri); + ? MauiProgram.Manageur.Joueurs.OrderBy(critereTri) + : MauiProgram.Manageur.Joueurs.OrderByDescending(critereTri); NbClique++; @@ -71,6 +71,7 @@ namespace MauiSpark.Pages default: critereTri = joueur => { + int totalParties = joueur.Statistique(regles, Statistique.PartiePerdue) + joueur.Statistique(regles, Statistique.PartieGagnee) + joueur.Statistique(regles, Statistique.PartieEgalite); @@ -80,7 +81,7 @@ namespace MauiSpark.Pages } BindingContext = GetClassement(critereTri); - int a = 2; + } } @@ -99,12 +100,21 @@ namespace MauiSpark.Pages public int Place { - get => manageur.joueurs + get => manageur.Joueurs .OrderBy(critereTri) .ToList() .IndexOf(joueur) + 1; } + public double NbCoupMoyen + { + get + { + int totalParties = PartieEgalite + PartiePerdue + PartieGagnee; + return totalParties == 0 ? 0 : (double)joueur.Statistique(regles, Statistique.CoupJoue) / totalParties; + } + } + public int PartieGagnee { get => joueur.Statistique(regles, Statistique.PartieGagnee); @@ -118,18 +128,6 @@ namespace MauiSpark.Pages { get => joueur.Statistique(regles, Statistique.PartieEgalite); } - - public double NbCoupMoyen - { - get - { - int totalParties = joueur.Statistique(regles, Statistique.PartiePerdue) + - joueur.Statistique(regles, Statistique.PartieGagnee) + - joueur.Statistique(regles, Statistique.PartieEgalite); - return totalParties == 0 ? 0 : (double)joueur.Statistique(regles, Statistique.CoupJoue) / totalParties; - } - } - public Classement(Joueur joueur, Manageur manageur, Func critereTri, IRegles regles) { this.manageur = manageur;