Début binding sur un classement
continuous-integration/drone/push Build is failing Details

master
Pauline PRADY 11 months ago
parent 7ec7ae63c4
commit c9cf49ab78

@ -5,16 +5,16 @@ namespace CoreLibrary.Manager
{
public class Manager : IPersistanceManager
{
private Joueur[] classement = [];
public List<Joueur> Classement => new List<Joueur>(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),
];
}

@ -12,8 +12,8 @@
<Grid ColumnDefinitions="*,*,*,*">
<Label Grid.Column="0" Text="{Binding Place}" Margin="20" Style="{StaticResource TexteFrame}" />
<Label Grid.Column="1" Text="{Binding Joueur.Nom}" Margin="20" Style="{StaticResource TexteFrame}" />
<Label Grid.Column="2" Text="{Binding Joueur.Nom}" Margin="20" Style="{StaticResource TexteFrame}" />
<Label Grid.Column="3" Text="{Binding Joueur.Nom}" Margin="20" Style="{StaticResource TexteFrame}" />
<Label Grid.Column="3" Text="{Binding Point}" Margin="20" Style="{StaticResource TexteFrame}" />
</Grid>
</ViewCell>
</DataTemplate>

@ -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<JoueurClassementNbCoupParPartie> classement1 = MauiProgram.Manager.Joueurs.OrderBy(joueur => joueur.NbCoutTotal / (joueur.NbPartiePerdue + joueur.NbPartieGagnee + joueur.NbPartieEgalite)).Select(joueur => new JoueurClassementNbCoupParPartie(joueur, MauiProgram.Manager));
IEnumerable<JoueurClassementPartieGagnee> classement2 = MauiProgram.Manager.Joueurs.OrderByDescending(joueur => joueur.NbPartieGagnee).Select(joueur => new JoueurClassementPartieGagnee(joueur, MauiProgram.Manager));
IEnumerable<JoueurClassementPartieEgalite> classement3 = MauiProgram.Manager.Joueurs.OrderByDescending(joueur => joueur.NbPartieEgalite).Select(joueur => new JoueurClassementPartieEgalite(joueur, MauiProgram.Manager));
IEnumerable<JoueurClassementPartiePerdue> classement4 = MauiProgram.Manager.Joueurs.OrderByDescending(joueur => joueur.NbPartiePerdue).Select(joueur => new JoueurClassementPartiePerdue(joueur, MauiProgram.Manager));
BindingContext = classement4;
}
}
Loading…
Cancel
Save