diff --git a/Sources/Fichiers/joueurs.json b/Sources/Fichiers/joueurs.json index 527ab1b..1a549ec 100644 --- a/Sources/Fichiers/joueurs.json +++ b/Sources/Fichiers/joueurs.json @@ -2,24 +2,6 @@ { "Nom": "Céleste", "statistiques": [ - { - "Key": { - "Item1": { - "__type": "ReglesClassiques:#CoreLibrary.Regles" - }, - "Item2": 3 - }, - "Value": 6 - }, - { - "Key": { - "Item1": { - "__type": "ReglesClassiques:#CoreLibrary.Regles" - }, - "Item2": 3 - }, - "Value": 2 - }, { "Key": { "Item1": { @@ -41,26 +23,24 @@ }, "Item2": 3 }, - "Value": 6 - }, - { - "Key": { - "Item1": { - "__type": "ReglesClassiques:#CoreLibrary.Regles" - }, - "Item2": 3 - }, - "Value": 1 - }, - { - "Key": { - "Item1": { - "__type": "ReglesClassiques:#CoreLibrary.Regles" - }, - "Item2": 3 - }, - "Value": 1 + "Value": 2 } ] + }, + { + "Nom": "a", + "statistiques": [ ] + }, + { + "Nom": "b", + "statistiques": [ ] + }, + { + "Nom": "e", + "statistiques": [ ] + }, + { + "Nom": "f", + "statistiques": [ ] } ] \ No newline at end of file diff --git a/Sources/Fichiers/parties.json b/Sources/Fichiers/parties.json index 80d1f59..780cb44 100644 --- a/Sources/Fichiers/parties.json +++ b/Sources/Fichiers/parties.json @@ -4,18 +4,8 @@ "__type": "ReglesClassiques:#CoreLibrary.Regles" }, "Termine": false, - "Tour": 0, + "Tour": 3, "courant": 0, - "joueurs": [ ], - "plateaux": [ ] - }, - { - "Regles": { - "__type": "ReglesClassiques:#CoreLibrary.Regles" - }, - "Termine": false, - "Tour": 2, - "courant": 1, "joueurs": [ "Céleste", "Pauline" @@ -28,232 +18,21 @@ "codeSecret": { "Jetons": [ { - "Couleur": 0 - }, - { - "Couleur": 3 + "Couleur": 2 }, { "Couleur": 3 }, { "Couleur": 5 - } - ], - "TailleMax": 4 - }, - "codes": [ - { - "Jetons": [ - { - "Couleur": 3 - }, - { - "Couleur": 3 - }, - { - "Couleur": 3 - }, - { - "Couleur": 3 - } - ], - "TailleMax": 4 - }, - { - "Jetons": [ - { - "Couleur": 1 - }, - { - "Couleur": 1 - }, - { - "Couleur": 1 - }, - { - "Couleur": 1 - } - ], - "TailleMax": 4 - } - ], - "indicateurs": [ - [ - 0, - 0 - ], - [ ] - ] - }, - { - "TailleMax": 12, - "TailleMaxCode": 4, - "Victoire": false, - "codeSecret": { - "Jetons": [ - { - "Couleur": 0 }, { "Couleur": 0 - }, - { - "Couleur": 2 - }, - { - "Couleur": 2 - } - ], - "TailleMax": 4 - }, - "codes": [ - { - "Jetons": [ - { - "Couleur": 2 - }, - { - "Couleur": 2 - }, - { - "Couleur": 2 - }, - { - "Couleur": 2 - } - ], - "TailleMax": 4 - } - ], - "indicateurs": [ - [ - 0, - 0 - ] - ] - } - ] - }, - { - "Regles": { - "__type": "ReglesClassiques:#CoreLibrary.Regles" - }, - "Termine": false, - "Tour": 8, - "courant": 1, - "joueurs": [ - "Céleste", - "Pauline" - ], - "plateaux": [ - { - "TailleMax": 12, - "TailleMaxCode": 4, - "Victoire": false, - "codeSecret": { - "Jetons": [ - { - "Couleur": 2 - }, - { - "Couleur": 0 - }, - { - "Couleur": 2 - }, - { - "Couleur": 4 } ], "TailleMax": 4 }, "codes": [ - { - "Jetons": [ - { - "Couleur": 0 - }, - { - "Couleur": 0 - }, - { - "Couleur": 0 - }, - { - "Couleur": 0 - } - ], - "TailleMax": 4 - }, - { - "Jetons": [ - { - "Couleur": 1 - }, - { - "Couleur": 1 - }, - { - "Couleur": 1 - }, - { - "Couleur": 1 - } - ], - "TailleMax": 4 - }, - { - "Jetons": [ - { - "Couleur": 3 - }, - { - "Couleur": 3 - }, - { - "Couleur": 3 - }, - { - "Couleur": 3 - } - ], - "TailleMax": 4 - }, - { - "Jetons": [ - { - "Couleur": 2 - }, - { - "Couleur": 2 - }, - { - "Couleur": 2 - }, - { - "Couleur": 2 - } - ], - "TailleMax": 4 - }, - { - "Jetons": [ - { - "Couleur": 4 - }, - { - "Couleur": 4 - }, - { - "Couleur": 4 - }, - { - "Couleur": 4 - } - ], - "TailleMax": 4 - }, { "Jetons": [ { @@ -287,45 +66,15 @@ } ], "TailleMax": 4 - }, - { - "Jetons": [ - { - "Couleur": 3 - }, - { - "Couleur": 3 - }, - { - "Couleur": 3 - }, - { - "Couleur": 3 - } - ], - "TailleMax": 4 } ], "indicateurs": [ [ 0 ], - [ ], - [ ], [ - 0, 0 - ], - [ - 0 - ], - [ - 0 - ], - [ - 0 - ], - [ ] + ] ] }, { @@ -335,38 +84,21 @@ "codeSecret": { "Jetons": [ { - "Couleur": 2 - }, - { - "Couleur": 2 + "Couleur": 0 }, { "Couleur": 1 }, { "Couleur": 2 + }, + { + "Couleur": 4 } ], "TailleMax": 4 }, "codes": [ - { - "Jetons": [ - { - "Couleur": 4 - }, - { - "Couleur": 4 - }, - { - "Couleur": 4 - }, - { - "Couleur": 4 - } - ], - "TailleMax": 4 - }, { "Jetons": [ { @@ -384,23 +116,6 @@ ], "TailleMax": 4 }, - { - "Jetons": [ - { - "Couleur": 0 - }, - { - "Couleur": 0 - }, - { - "Couleur": 0 - }, - { - "Couleur": 0 - } - ], - "TailleMax": 4 - }, { "Jetons": [ { @@ -417,81 +132,29 @@ } ], "TailleMax": 4 - }, - { - "Jetons": [ - { - "Couleur": 5 - }, - { - "Couleur": 5 - }, - { - "Couleur": 5 - }, - { - "Couleur": 5 - } - ], - "TailleMax": 4 - }, - { - "Jetons": [ - { - "Couleur": 2 - }, - { - "Couleur": 2 - }, - { - "Couleur": 2 - }, - { - "Couleur": 2 - } - ], - "TailleMax": 4 - }, - { - "Jetons": [ - { - "Couleur": 4 - }, - { - "Couleur": 4 - }, - { - "Couleur": 4 - }, - { - "Couleur": 4 - } - ], - "TailleMax": 4 } ], "indicateurs": [ - [ ], [ - 0, - 0, 0 ], - [ ], [ 0 - ], - [ ], - [ - 0, - 0, - 0 - ], - [ ] + ] ] } ] }, + { + "Regles": { + "__type": "ReglesClassiques:#CoreLibrary.Regles" + }, + "Termine": false, + "Tour": 0, + "courant": 0, + "joueurs": [ ], + "plateaux": [ ] + }, { "Regles": { "__type": "ReglesClassiques:#CoreLibrary.Regles" @@ -500,8 +163,8 @@ "Tour": 1, "courant": 0, "joueurs": [ - "Joueur 1", - "Joueur 2" + "a", + "b" ], "plateaux": [ { @@ -511,16 +174,16 @@ "codeSecret": { "Jetons": [ { - "Couleur": 2 + "Couleur": 0 }, { "Couleur": 4 }, { - "Couleur": 5 + "Couleur": 4 }, { - "Couleur": 2 + "Couleur": 5 } ], "TailleMax": 4 @@ -535,13 +198,13 @@ "codeSecret": { "Jetons": [ { - "Couleur": 1 + "Couleur": 0 }, { "Couleur": 4 }, { - "Couleur": 2 + "Couleur": 0 }, { "Couleur": 4 @@ -562,8 +225,8 @@ "Tour": 1, "courant": 0, "joueurs": [ - "Céleste", - "Pauline" + "e", + "f" ], "plateaux": [ { @@ -573,16 +236,16 @@ "codeSecret": { "Jetons": [ { - "Couleur": 3 + "Couleur": 0 }, { "Couleur": 3 }, { - "Couleur": 4 + "Couleur": 0 }, { - "Couleur": 3 + "Couleur": 2 } ], "TailleMax": 4 @@ -597,16 +260,16 @@ "codeSecret": { "Jetons": [ { - "Couleur": 4 + "Couleur": 0 }, { "Couleur": 0 }, { - "Couleur": 3 + "Couleur": 2 }, { - "Couleur": 4 + "Couleur": 3 } ], "TailleMax": 4 diff --git a/Sources/MauiSpark/MauiSpark.csproj b/Sources/MauiSpark/MauiSpark.csproj index 551dd2c..648fc8f 100644 --- a/Sources/MauiSpark/MauiSpark.csproj +++ b/Sources/MauiSpark/MauiSpark.csproj @@ -79,6 +79,9 @@ ReglesPage.xaml + + ClassementPage.xaml + VictoirePage.xaml @@ -106,7 +109,7 @@ MSBuild:Compile - + MSBuild:Compile diff --git a/Sources/MauiSpark/Pages/AccueilPage.xaml.cs b/Sources/MauiSpark/Pages/AccueilPage.xaml.cs index 4582923..13ef29c 100644 --- a/Sources/MauiSpark/Pages/AccueilPage.xaml.cs +++ b/Sources/MauiSpark/Pages/AccueilPage.xaml.cs @@ -1,22 +1,22 @@ -namespace MauiSpark.Pages; - -public partial class AccueilPage : ContentPage -{ - public AccueilPage() - { - NavigationPage.SetHasBackButton(this, false); - NavigationPage.SetHasNavigationBar(this, false); - - InitializeComponent(); - } - - private void QuandJouerClique(Object? sender, EventArgs e) - { - Navigation.PushAsync(new ModePage()); +namespace MauiSpark.Pages; + +public partial class AccueilPage : ContentPage +{ + public AccueilPage() + { + NavigationPage.SetHasBackButton(this, false); + NavigationPage.SetHasNavigationBar(this, false); + + InitializeComponent(); + } + + private void QuandJouerClique(Object? sender, EventArgs e) + { + Navigation.PushAsync(new ModePage()); } private void QuandReprendreClique(Object? sender, EventArgs e) { Navigation.PushAsync(new ReprendrePage()); - } + } } \ No newline at end of file diff --git a/Sources/MauiSpark/Pages/ClassementPage.xaml b/Sources/MauiSpark/Pages/ClassementPage.xaml new file mode 100644 index 0000000..34defd9 --- /dev/null +++ b/Sources/MauiSpark/Pages/ClassementPage.xaml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Sources/MauiSpark/Pages/TableauScore.xaml.cs b/Sources/MauiSpark/Pages/TableauScore.xaml.cs deleted file mode 100644 index 3810649..0000000 --- a/Sources/MauiSpark/Pages/TableauScore.xaml.cs +++ /dev/null @@ -1,140 +0,0 @@ -using CoreLibrary.Joueurs; -using CoreLibrary.Manageurs; -using CoreLibrary.Statistiques; -using System.Linq; -using CoreLibrary.Regles; - -namespace MauiSpark.Pages -{ - public partial class TableauScore : ContentPage - { - private IRegles regles = new ReglesClassiques(); - public TableauScore() - { - NavigationPage.SetHasNavigationBar(this, false); - InitializeComponent(); - QuandButtonClassementClique(null, EventArgs.Empty); - } - - private void QuandButtonRegleClassiqueClique(object sender, EventArgs e) - { - regles = new ReglesClassiques(); - QuandButtonClassementClique(null, EventArgs.Empty); - } - - public int NbClique { get; set; } = 0; - - public IEnumerable GetClassement(Func critereTri) - { - IEnumerable joueursTries = NbClique % 2 == 0 - ? MauiProgram.Manageur.Joueurs.OrderBy(critereTri) - : MauiProgram.Manageur.Joueurs.OrderByDescending(critereTri); - - NbClique++; - - return joueursTries.Select(joueur => new Classement(joueur, MauiProgram.Manageur, critereTri, regles)); - } - - public void QuandButtonClassementClique(object sender, EventArgs e) - { - Button button = sender as Button; - string nom = button?.Text ?? string.Empty; - Func critereTri; - - switch (nom) - { - case "PSEUDO": - critereTri = joueur => joueur.Nom; - break; - - case "Cout Moyen": - critereTri = joueur => - { - 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; - }; - break; - - case "Partie Gagnée": - critereTri = joueur => joueur.Statistique(regles, Statistique.PartieGagnee); - break; - - case "Partie Perdue": - critereTri = joueur => joueur.Statistique(regles, Statistique.PartiePerdue); - break; - - case "Partie Égalité": - critereTri = joueur => joueur.Statistique(regles, Statistique.PartieEgalite); - break; - - default: - critereTri = joueur => - { - - 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; - }; - break; - } - - BindingContext = GetClassement(critereTri); - - } - } - - public class Classement - { - private IRegles regles; - private Manageur manageur; - private Joueur joueur; - private Func critereTri; - - public Joueur Joueur - { - get => joueur; - private set => joueur = value; - } - - public int Place - { - get => manageur.Joueurs - .OrderBy(critereTri) - .ToList() - .IndexOf(joueur) + 1; - } - - public double NbCoupMoyen - { - get - { - int totalParties = PartieEgalite + PartiePerdue + PartieGagnee; - return totalParties == 0 ? 0 : joueur.Statistique(regles, Statistique.CoupJoue) / totalParties; - } - } - - public int PartieGagnee - { - get => joueur.Statistique(regles, Statistique.PartieGagnee); - } - - public int PartiePerdue - { - get => joueur.Statistique(regles, Statistique.PartiePerdue); - } - public int PartieEgalite - { - get => joueur.Statistique(regles, Statistique.PartieEgalite); - } - public Classement(Joueur joueur, Manageur manageur, Func critereTri, IRegles regles) - { - this.manageur = manageur; - this.joueur = joueur; - this.critereTri = critereTri; - this.regles = regles; - } - } -} \ No newline at end of file diff --git a/Sources/MauiSpark/Resources/Styles/Styles.xaml b/Sources/MauiSpark/Resources/Styles/Styles.xaml index 2069dc8..823693f 100644 --- a/Sources/MauiSpark/Resources/Styles/Styles.xaml +++ b/Sources/MauiSpark/Resources/Styles/Styles.xaml @@ -17,27 +17,19 @@ - +