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 public class Manager : IPersistanceManager
{ {
private Joueur[] classement = []; private Joueur[] joueurs = [];
public List<Joueur> Classement => new List<Joueur>(classement); public Joueur[] Joueurs => (Joueur[]) joueurs.Clone();
public void Charger() public void Charger()
{ {
classement = [ joueurs = [
new Joueur("Pauline", new Core.Plateau(4, 12)), new Joueur("Pauline", 50, 5, 2, 0),
new Joueur("Céleste", new Core.Plateau(4, 12)), new Joueur("Céleste", 40, 6, 2, 0),
new Joueur("Camille", new Core.Plateau(4, 12)), new Joueur("Camille", 55, 8, 0, 1),
new Joueur("Toto", new Core.Plateau(4, 12)), new Joueur("Toto", 70, 0, 0, 10),
]; ];
} }

@ -12,8 +12,8 @@
<Grid ColumnDefinitions="*,*,*,*"> <Grid ColumnDefinitions="*,*,*,*">
<Label Grid.Column="0" Text="{Binding Place}" Margin="20" Style="{StaticResource TexteFrame}" /> <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="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> </Grid>
</ViewCell> </ViewCell>
</DataTemplate> </DataTemplate>

@ -3,7 +3,7 @@ using CoreLibrary.Manager;
namespace MauiSpark.Views; namespace MauiSpark.Views;
internal class JoueurClassement internal class JoueurClassementNbCoupParPartie
{ {
private Manager manager; private Manager manager;
private Joueur joueur; private Joueur joueur;
@ -16,10 +16,89 @@ internal class JoueurClassement
public int Place 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.manager = manager;
this.joueur = joueur; this.joueur = joueur;
@ -32,6 +111,11 @@ public partial class CTableauScore : ContentView
{ {
InitializeComponent(); 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