diff --git a/Sources/CoreLibrary/Manager/Manager.cs b/Sources/CoreLibrary/Manager/Manager.cs index f6ee342..9988d53 100644 --- a/Sources/CoreLibrary/Manager/Manager.cs +++ b/Sources/CoreLibrary/Manager/Manager.cs @@ -5,16 +5,16 @@ namespace CoreLibrary.Manager { public class Manager : IPersistanceManager { - private Joueur[] classement = []; - public List Classement => new List(classement); + private Joueur[] joueurs = []; + public Joueur[] Joueurs => (Joueur[]) joueurs.Clone(); public void Charger() { - classement = [ - new Joueur("Pauline", new Core.Plateau(4, 12)), - new Joueur("Céleste", new Core.Plateau(4, 12)), - new Joueur("Camille", new Core.Plateau(4, 12)), - new Joueur("Toto", new Core.Plateau(4, 12)), + joueurs = [ + new Joueur("Pauline", 50, 5, 2, 0), + new Joueur("Céleste", 40, 6, 2, 0), + new Joueur("Camille", 55, 8, 0, 1), + new Joueur("Toto", 70, 0, 0, 10), ]; } diff --git a/Sources/MauiSpark/Views/CTableauScore.xaml b/Sources/MauiSpark/Views/CTableauScore.xaml index 1e0c542..5f2e4e9 100644 --- a/Sources/MauiSpark/Views/CTableauScore.xaml +++ b/Sources/MauiSpark/Views/CTableauScore.xaml @@ -12,8 +12,8 @@ diff --git a/Sources/MauiSpark/Views/CTableauScore.xaml.cs b/Sources/MauiSpark/Views/CTableauScore.xaml.cs index 97cffca..d9e5d68 100644 --- a/Sources/MauiSpark/Views/CTableauScore.xaml.cs +++ b/Sources/MauiSpark/Views/CTableauScore.xaml.cs @@ -3,7 +3,7 @@ using CoreLibrary.Manager; namespace MauiSpark.Views; -internal class JoueurClassement +internal class JoueurClassementNbCoupParPartie { private Manager manager; private Joueur joueur; @@ -16,10 +16,89 @@ internal class JoueurClassement public int Place { - get => manager.Classement.IndexOf(Joueur) + 1; + get => manager.Joueurs + .OrderBy(joueur => joueur.NbCoutTotal/(joueur.NbPartiePerdue+joueur.NbPartieGagnee+joueur.NbPartieEgalite)).ToList() + .IndexOf(Joueur) + 1; } - public JoueurClassement(Joueur joueur, Manager manager) + public int Point => joueur.NbCoutTotal / (joueur.NbPartiePerdue + joueur.NbPartieGagnee + joueur.NbPartieEgalite); + + public JoueurClassementNbCoupParPartie(Joueur joueur, Manager manager) + { + this.manager = manager; + this.joueur = joueur; + } +} + +internal class JoueurClassementPartieGagnee +{ + private Manager manager; + private Joueur joueur; + + public Joueur Joueur + { + get => joueur; + private set => joueur = value; + } + + public int Place + { + get => manager.Joueurs.OrderByDescending(joueur => joueur.NbPartieGagnee).ToList().IndexOf(Joueur) + 1; + } + + public int Point => joueur.NbPartieGagnee; + + public JoueurClassementPartieGagnee(Joueur joueur, Manager manager) + { + this.manager = manager; + this.joueur = joueur; + } +} + +internal class JoueurClassementPartieEgalite +{ + private Manager manager; + private Joueur joueur; + + public Joueur Joueur + { + get => joueur; + private set => joueur = value; + } + + public int Place + { + get => manager.Joueurs.OrderByDescending(joueur => joueur.NbPartieEgalite).ToList().IndexOf(joueur)+1; + } + + public int Point => joueur.NbPartieEgalite; + + public JoueurClassementPartieEgalite(Joueur joueur, Manager manager) + { + this.manager = manager; + this.joueur = joueur; + } +} + +internal class JoueurClassementPartiePerdue +{ + private Manager manager; + private Joueur joueur; + + public Joueur Joueur + { + get => joueur; + private set => joueur = value; + } + + public int Place + { + get => manager.Joueurs.OrderByDescending(joueur => joueur.NbPartiePerdue).ToList().IndexOf(joueur)+1; + } + + public int Point => joueur.NbPartiePerdue; + + public JoueurClassementPartiePerdue(Joueur joueur, Manager manager) { this.manager = manager; this.joueur = joueur; @@ -32,6 +111,11 @@ public partial class CTableauScore : ContentView { InitializeComponent(); - BindingContext = MauiProgram.Manager.Classement.Select(joueur => new JoueurClassement(joueur, MauiProgram.Manager)); + IEnumerable classement1 = MauiProgram.Manager.Joueurs.OrderBy(joueur => joueur.NbCoutTotal / (joueur.NbPartiePerdue + joueur.NbPartieGagnee + joueur.NbPartieEgalite)).Select(joueur => new JoueurClassementNbCoupParPartie(joueur, MauiProgram.Manager)); + IEnumerable classement2 = MauiProgram.Manager.Joueurs.OrderByDescending(joueur => joueur.NbPartieGagnee).Select(joueur => new JoueurClassementPartieGagnee(joueur, MauiProgram.Manager)); + IEnumerable classement3 = MauiProgram.Manager.Joueurs.OrderByDescending(joueur => joueur.NbPartieEgalite).Select(joueur => new JoueurClassementPartieEgalite(joueur, MauiProgram.Manager)); + IEnumerable classement4 = MauiProgram.Manager.Joueurs.OrderByDescending(joueur => joueur.NbPartiePerdue).Select(joueur => new JoueurClassementPartiePerdue(joueur, MauiProgram.Manager)); + + BindingContext = classement4; } } \ No newline at end of file