using CoreLibrary.Joueurs; using CoreLibrary.Manager; namespace MauiSpark.Views; public class JoueurClassementNbCoupParPartie { private Manageur manageur; private Joueur joueur; public Joueur Joueur { get => joueur; private set => joueur = value; } public int Place { get => manageur.Joueurs .OrderBy(joueur => joueur.NbCoutTotal/(joueur.NbPartiePerdue+joueur.NbPartieGagnee+joueur.NbPartieEgalite)).ToList() .IndexOf(Joueur) + 1; } public int NbCoutMoyen => joueur.NbCoutTotal / (joueur.NbPartiePerdue + joueur.NbPartieGagnee + joueur.NbPartieEgalite); public JoueurClassementNbCoupParPartie(Joueur joueur, Manageur manageur) { this.manageur = manageur; this.joueur = joueur; } } public class JoueurClassementPartieGagnee { private Manageur manageur; private Joueur joueur; public Joueur Joueur { get => joueur; private set => joueur = value; } public int Place { get => manageur.Joueurs.OrderByDescending(joueur => joueur.NbPartieGagnee).ToList().IndexOf(Joueur) + 1; } public int NbCoutMoyen => joueur.NbCoutTotal / (joueur.NbPartiePerdue + joueur.NbPartieGagnee + joueur.NbPartieEgalite); public JoueurClassementPartieGagnee(Joueur joueur, Manageur manageur) { this.manageur = manageur; this.joueur = joueur; } } public class JoueurClassementPartieEgalite { private Manageur manageur; private Joueur joueur; public Joueur Joueur { get => joueur; private set => joueur = value; } public int Place { get => manageur.Joueurs.OrderByDescending(joueur => joueur.NbPartieEgalite).ToList().IndexOf(joueur)+1; } public int NbCoutMoyen => joueur.NbCoutTotal / (joueur.NbPartiePerdue + joueur.NbPartieGagnee + joueur.NbPartieEgalite); public JoueurClassementPartieEgalite(Joueur joueur, Manageur manageur) { this.manageur = manageur; this.joueur = joueur; } } public class JoueurClassementPartiePerdue { private Manageur manageur; private Joueur joueur; public Joueur Joueur { get => joueur; private set => joueur = value; } public int Place { get => manageur.Joueurs.OrderByDescending(joueur => joueur.NbPartiePerdue).ToList().IndexOf(joueur)+1; } public int NbCoutMoyen => joueur.NbCoutTotal / (joueur.NbPartiePerdue + joueur.NbPartieGagnee + joueur.NbPartieEgalite); public JoueurClassementPartiePerdue(Joueur joueur, Manageur manageur) { this.manageur = manageur; this.joueur = joueur; } } public class JoueurClassementAlphabet { private Manageur manageur; private Joueur joueur; public Joueur Joueur { get => joueur; private set => joueur = value; } public int Place { get => manageur.Joueurs .OrderBy(joueur => joueur.NbCoutTotal / (joueur.NbPartiePerdue + joueur.NbPartieGagnee + joueur.NbPartieEgalite)).ToList() .IndexOf(Joueur) + 1; } public int NbCoutMoyen => joueur.NbCoutTotal / (joueur.NbPartiePerdue + joueur.NbPartieGagnee + joueur.NbPartieEgalite); public JoueurClassementAlphabet(Joueur joueur, Manageur manager) { this.manageur = manager; this.joueur = joueur; } } public partial class CTableauScore : ContentView { public int NbClique { get; set; } = 0; public IEnumerable GetClassementNbCoupParPartie() { if(NbClique % 2 == 0) { NbClique++; return MauiProgram.Manageur.Joueurs .OrderBy(joueur => joueur.NbCoutTotal / (joueur.NbPartiePerdue + joueur.NbPartieGagnee + joueur.NbPartieEgalite)) .Select(joueur => new JoueurClassementNbCoupParPartie(joueur, MauiProgram.Manageur)); } else { NbClique++; return MauiProgram.Manageur.Joueurs .OrderByDescending(joueur => joueur.NbCoutTotal / (joueur.NbPartiePerdue + joueur.NbPartieGagnee + joueur.NbPartieEgalite)) .Select(joueur => new JoueurClassementNbCoupParPartie(joueur, MauiProgram.Manageur)); } } public IEnumerable GetClassementPartieGagnee() { if(NbClique % 2 == 0) { NbClique++; return MauiProgram.Manageur.Joueurs .OrderByDescending(joueur => joueur.NbPartieGagnee) .Select(joueur => new JoueurClassementPartieGagnee(joueur, MauiProgram.Manageur)); } else { NbClique++; return MauiProgram.Manageur.Joueurs .OrderBy(joueur => joueur.NbPartieGagnee) .Select(joueur => new JoueurClassementPartieGagnee(joueur, MauiProgram.Manageur)); } } public IEnumerable GetClassementPartieEgalite() { if(NbClique % 2 == 0) { NbClique++; return MauiProgram.Manageur.Joueurs .OrderByDescending(joueur => joueur.NbPartieEgalite) .Select(joueur => new JoueurClassementPartieEgalite(joueur, MauiProgram.Manageur)); } else { NbClique++; return MauiProgram.Manageur.Joueurs .OrderBy(joueur => joueur.NbPartieEgalite) .Select(joueur => new JoueurClassementPartieEgalite(joueur, MauiProgram.Manageur)); } } public IEnumerable GetClassementPartiePerdue() { if(NbClique % 2 == 0) { NbClique++; return MauiProgram.Manageur.Joueurs .OrderByDescending(joueur => joueur.NbPartiePerdue) .Select(joueur => new JoueurClassementPartiePerdue(joueur, MauiProgram.Manageur)); } else { NbClique++; ; return MauiProgram.Manageur.Joueurs .OrderBy(joueur => joueur.NbPartiePerdue) .Select(joueur => new JoueurClassementPartiePerdue(joueur, MauiProgram.Manageur)); } } public IEnumerable GetClassementAlphabet() { if(NbClique % 2 == 0) { NbClique++; return MauiProgram.Manageur.Joueurs .OrderBy(joueur => joueur.Nom) .Select(joueur => new JoueurClassementAlphabet(joueur, MauiProgram.Manageur)); } else { NbClique++; return MauiProgram.Manageur.Joueurs .OrderByDescending(joueur => joueur.Nom) .Select(joueur => new JoueurClassementAlphabet(joueur, MauiProgram.Manageur)); } } public CTableauScore() { InitializeComponent(); } public void UpdateClassement(Func> getClassement) { BindingContext = getClassement(); } }