Classement marche pas
continuous-integration/drone/push Build is failing Details

master
Camille TURPIN-ETIENNE 11 months ago
parent 57f2cca38f
commit 058a3fd3d1

@ -48,8 +48,7 @@ namespace CoreLibrary.Joueurs
public override string ToString() => Nom; public override string ToString() => Nom;
public int Statistique(IRegles regles, Statistique statistique) => public int Statistique(IRegles regles, Statistique statistique) => statistiques.GetValueOrDefault((regles, statistique),0);
statistiques.GetValueOrDefault((regles, statistique), 0);
public void IncrementerStatistique(IRegles regles, Statistique statistique) => public void IncrementerStatistique(IRegles regles, Statistique statistique) =>
statistiques[(regles, statistique)] = Statistique(regles, statistique) + 1; statistiques[(regles, statistique)] = Statistique(regles, statistique) + 1;

@ -8,7 +8,7 @@ namespace CoreLibrary.Manageurs
public class Manageur public class Manageur
{ {
private readonly IPersistance persistance; private readonly IPersistance persistance;
public readonly List<Joueur> joueurs; private readonly List<Joueur> joueurs;
private readonly List<Partie> parties; private readonly List<Partie> parties;
public IReadOnlyList<Joueur> Joueurs => joueurs; public IReadOnlyList<Joueur> Joueurs => joueurs;

@ -9,5 +9,16 @@ namespace CoreLibrary.Regles
public int NbJoueurs => 2; public int NbJoueurs => 2;
public int NbTour => 12; public int NbTour => 12;
public int TailleCode => 4; 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);
}
} }
} }

@ -26,8 +26,8 @@ namespace MauiSpark.Pages
public IEnumerable<Classement> GetClassement(Func<Joueur, object> critereTri) public IEnumerable<Classement> GetClassement(Func<Joueur, object> critereTri)
{ {
IEnumerable<Joueur> joueursTries = NbClique % 2 == 0 IEnumerable<Joueur> joueursTries = NbClique % 2 == 0
? MauiProgram.Manageur.joueurs.OrderBy(critereTri) ? MauiProgram.Manageur.Joueurs.OrderBy(critereTri)
: MauiProgram.Manageur.joueurs.OrderByDescending(critereTri); : MauiProgram.Manageur.Joueurs.OrderByDescending(critereTri);
NbClique++; NbClique++;
@ -71,6 +71,7 @@ namespace MauiSpark.Pages
default: default:
critereTri = joueur => critereTri = joueur =>
{ {
int totalParties = joueur.Statistique(regles, Statistique.PartiePerdue) + int totalParties = joueur.Statistique(regles, Statistique.PartiePerdue) +
joueur.Statistique(regles, Statistique.PartieGagnee) + joueur.Statistique(regles, Statistique.PartieGagnee) +
joueur.Statistique(regles, Statistique.PartieEgalite); joueur.Statistique(regles, Statistique.PartieEgalite);
@ -80,7 +81,7 @@ namespace MauiSpark.Pages
} }
BindingContext = GetClassement(critereTri); BindingContext = GetClassement(critereTri);
int a = 2;
} }
} }
@ -99,12 +100,21 @@ namespace MauiSpark.Pages
public int Place public int Place
{ {
get => manageur.joueurs get => manageur.Joueurs
.OrderBy(critereTri) .OrderBy(critereTri)
.ToList() .ToList()
.IndexOf(joueur) + 1; .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 public int PartieGagnee
{ {
get => joueur.Statistique(regles, Statistique.PartieGagnee); get => joueur.Statistique(regles, Statistique.PartieGagnee);
@ -118,18 +128,6 @@ namespace MauiSpark.Pages
{ {
get => joueur.Statistique(regles, Statistique.PartieEgalite); 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<Joueur, object> critereTri, IRegles regles) public Classement(Joueur joueur, Manageur manageur, Func<Joueur, object> critereTri, IRegles regles)
{ {
this.manageur = manageur; this.manageur = manageur;

Loading…
Cancel
Save