From 5d730e0e9f2af25f709e8c89a3f1b30c4e939b2a Mon Sep 17 00:00:00 2001 From: "camille.turpin-etienne" Date: Tue, 4 Jun 2024 14:47:48 +0200 Subject: [PATCH 1/3] =?UTF-8?q?Indicateur=20carr=C3=A9=20marche?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IndicateurVersCouleurMAUI.cs | 11 +++++--- Sources/MauiSpark/MauiSpark.csproj | 3 ++ Sources/MauiSpark/Pages/PlateauPage.xaml | 5 +++- Sources/MauiSpark/Pages/PlateauPage.xaml.cs | 1 - Sources/MauiSpark/Vues/IndicateurVue.xaml | 17 +++++++++++ Sources/MauiSpark/Vues/IndicateurVue.xaml.cs | 28 +++++++++++++++++++ 6 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 Sources/MauiSpark/Vues/IndicateurVue.xaml create mode 100644 Sources/MauiSpark/Vues/IndicateurVue.xaml.cs diff --git a/Sources/MauiSpark/Convertisseurs/IndicateurVersCouleurMAUI.cs b/Sources/MauiSpark/Convertisseurs/IndicateurVersCouleurMAUI.cs index fa9039d..5399b0e 100644 --- a/Sources/MauiSpark/Convertisseurs/IndicateurVersCouleurMAUI.cs +++ b/Sources/MauiSpark/Convertisseurs/IndicateurVersCouleurMAUI.cs @@ -5,18 +5,21 @@ namespace MauiSpark.Convertisseurs { public class IndicateurVersCouleurMAUI : IValueConverter { + + public static Color Noir { get; private set; } = Color.FromArgb("#000000"); + public static Color Blanc { get; private set; } = Color.FromArgb("#FFFFFF"); public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) { - if (value is not Indicateur) return "black"; + if (value is not Indicateur) return Noir; switch (value) { case Indicateur.BonnePlace: - return "black"; + return Noir; case Indicateur.BonneCouleur: - return "white"; + return Blanc; default: - return "black"; + return Noir; } } diff --git a/Sources/MauiSpark/MauiSpark.csproj b/Sources/MauiSpark/MauiSpark.csproj index 648fc8f..975823f 100644 --- a/Sources/MauiSpark/MauiSpark.csproj +++ b/Sources/MauiSpark/MauiSpark.csproj @@ -124,6 +124,9 @@ MSBuild:Compile + + MSBuild:Compile + MSBuild:Compile diff --git a/Sources/MauiSpark/Pages/PlateauPage.xaml b/Sources/MauiSpark/Pages/PlateauPage.xaml index 291eb56..16ed068 100644 --- a/Sources/MauiSpark/Pages/PlateauPage.xaml +++ b/Sources/MauiSpark/Pages/PlateauPage.xaml @@ -36,10 +36,13 @@ - + + + + + + + + diff --git a/Sources/MauiSpark/Vues/IndicateurVue.xaml.cs b/Sources/MauiSpark/Vues/IndicateurVue.xaml.cs new file mode 100644 index 0000000..205819f --- /dev/null +++ b/Sources/MauiSpark/Vues/IndicateurVue.xaml.cs @@ -0,0 +1,28 @@ +using CoreLibrary.Core; +using MauiSpark.Convertisseurs; +using System.Globalization; + +namespace MauiSpark.Vues; + +public partial class IndicateurVue : ContentView +{ + public static readonly BindableProperty CouleurProperty = BindableProperty.Create(nameof(Couleur), typeof(Color), typeof(IndicateurVue), default(Color)); + + public Color Couleur + { + get => (Color)GetValue(CouleurProperty); + + set => SetValue(CouleurProperty, value); + } + public IndicateurVue() + { + InitializeComponent(); + BindingContext = this; + } + + private void QuandTailleChangee(object sender, EventArgs e) + { + double taille = Math.Min(Grid.Width, Grid.Height) / 2; + Carre.WidthRequest = Carre.HeightRequest = taille; + } +} \ No newline at end of file From 3c0a1a1eb875b6ba386a23915fc0d64bd5811b54 Mon Sep 17 00:00:00 2001 From: "camille.turpin-etienne" Date: Tue, 4 Jun 2024 15:24:40 +0200 Subject: [PATCH 2/3] ReglesDifficles marche un peux --- Sources/CoreLibrary/Joueurs/Joueur.cs | 1 + Sources/CoreLibrary/Partie.cs | 1 + .../CoreLibrary/Regles/ReglesDifficiles.cs | 24 ++ Sources/Fichiers/joueurs.json | 46 --- Sources/Fichiers/parties.json | 282 ------------------ Sources/MauiSpark/Pages/ClassementPage.xaml | 3 +- .../MauiSpark/Pages/ClassementPage.xaml.cs | 6 + Sources/MauiSpark/Pages/ModePage.xaml | 7 +- Sources/MauiSpark/Pages/ModePage.xaml.cs | 2 + 9 files changed, 42 insertions(+), 330 deletions(-) create mode 100644 Sources/CoreLibrary/Regles/ReglesDifficiles.cs delete mode 100644 Sources/Fichiers/joueurs.json delete mode 100644 Sources/Fichiers/parties.json diff --git a/Sources/CoreLibrary/Joueurs/Joueur.cs b/Sources/CoreLibrary/Joueurs/Joueur.cs index ed27989..3dc5fc2 100644 --- a/Sources/CoreLibrary/Joueurs/Joueur.cs +++ b/Sources/CoreLibrary/Joueurs/Joueur.cs @@ -9,6 +9,7 @@ namespace CoreLibrary.Joueurs { [DataContract] [KnownType(typeof(ReglesClassiques))] + [KnownType(typeof(ReglesDifficiles))] public class Joueur : IEstPersistant { public event EventHandler? JoueurSeConnecter; diff --git a/Sources/CoreLibrary/Partie.cs b/Sources/CoreLibrary/Partie.cs index f793400..7f727dc 100644 --- a/Sources/CoreLibrary/Partie.cs +++ b/Sources/CoreLibrary/Partie.cs @@ -9,6 +9,7 @@ namespace CoreLibrary { [DataContract] [KnownType(typeof(ReglesClassiques))] + [KnownType(typeof(ReglesDifficiles))] public class Partie : IEstPersistant { public event EventHandler? PartieDemanderJoueur; diff --git a/Sources/CoreLibrary/Regles/ReglesDifficiles.cs b/Sources/CoreLibrary/Regles/ReglesDifficiles.cs new file mode 100644 index 0000000..9c6bfde --- /dev/null +++ b/Sources/CoreLibrary/Regles/ReglesDifficiles.cs @@ -0,0 +1,24 @@ +using System.Runtime.Serialization; + +namespace CoreLibrary.Regles +{ + [DataContract] + public class ReglesDifficiles : IRegles + { + public string Nom => "Règles difficile"; + public int NbJoueurs => 2; + public int NbTour => 12; + public int TailleCode => 6; + + public override bool Equals(object? obj) + { + if (obj == null || obj is not ReglesDifficiles) return false; + return true; + } + + public override int GetHashCode() + { + return HashCode.Combine(Nom, NbJoueurs, NbTour, TailleCode); + } + } +} diff --git a/Sources/Fichiers/joueurs.json b/Sources/Fichiers/joueurs.json deleted file mode 100644 index 1a549ec..0000000 --- a/Sources/Fichiers/joueurs.json +++ /dev/null @@ -1,46 +0,0 @@ -[ - { - "Nom": "Céleste", - "statistiques": [ - { - "Key": { - "Item1": { - "__type": "ReglesClassiques:#CoreLibrary.Regles" - }, - "Item2": 3 - }, - "Value": 2 - } - ] - }, - { - "Nom": "Pauline", - "statistiques": [ - { - "Key": { - "Item1": { - "__type": "ReglesClassiques:#CoreLibrary.Regles" - }, - "Item2": 3 - }, - "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 deleted file mode 100644 index 780cb44..0000000 --- a/Sources/Fichiers/parties.json +++ /dev/null @@ -1,282 +0,0 @@ -[ - { - "Regles": { - "__type": "ReglesClassiques:#CoreLibrary.Regles" - }, - "Termine": false, - "Tour": 3, - "courant": 0, - "joueurs": [ - "Céleste", - "Pauline" - ], - "plateaux": [ - { - "TailleMax": 12, - "TailleMaxCode": 4, - "Victoire": false, - "codeSecret": { - "Jetons": [ - { - "Couleur": 2 - }, - { - "Couleur": 3 - }, - { - "Couleur": 5 - }, - { - "Couleur": 0 - } - ], - "TailleMax": 4 - }, - "codes": [ - { - "Jetons": [ - { - "Couleur": 0 - }, - { - "Couleur": 0 - }, - { - "Couleur": 0 - }, - { - "Couleur": 0 - } - ], - "TailleMax": 4 - }, - { - "Jetons": [ - { - "Couleur": 0 - }, - { - "Couleur": 0 - }, - { - "Couleur": 0 - }, - { - "Couleur": 0 - } - ], - "TailleMax": 4 - } - ], - "indicateurs": [ - [ - 0 - ], - [ - 0 - ] - ] - }, - { - "TailleMax": 12, - "TailleMaxCode": 4, - "Victoire": false, - "codeSecret": { - "Jetons": [ - { - "Couleur": 0 - }, - { - "Couleur": 1 - }, - { - "Couleur": 2 - }, - { - "Couleur": 4 - } - ], - "TailleMax": 4 - }, - "codes": [ - { - "Jetons": [ - { - "Couleur": 2 - }, - { - "Couleur": 2 - }, - { - "Couleur": 2 - }, - { - "Couleur": 2 - } - ], - "TailleMax": 4 - }, - { - "Jetons": [ - { - "Couleur": 1 - }, - { - "Couleur": 1 - }, - { - "Couleur": 1 - }, - { - "Couleur": 1 - } - ], - "TailleMax": 4 - } - ], - "indicateurs": [ - [ - 0 - ], - [ - 0 - ] - ] - } - ] - }, - { - "Regles": { - "__type": "ReglesClassiques:#CoreLibrary.Regles" - }, - "Termine": false, - "Tour": 0, - "courant": 0, - "joueurs": [ ], - "plateaux": [ ] - }, - { - "Regles": { - "__type": "ReglesClassiques:#CoreLibrary.Regles" - }, - "Termine": false, - "Tour": 1, - "courant": 0, - "joueurs": [ - "a", - "b" - ], - "plateaux": [ - { - "TailleMax": 12, - "TailleMaxCode": 4, - "Victoire": false, - "codeSecret": { - "Jetons": [ - { - "Couleur": 0 - }, - { - "Couleur": 4 - }, - { - "Couleur": 4 - }, - { - "Couleur": 5 - } - ], - "TailleMax": 4 - }, - "codes": [ ], - "indicateurs": [ ] - }, - { - "TailleMax": 12, - "TailleMaxCode": 4, - "Victoire": false, - "codeSecret": { - "Jetons": [ - { - "Couleur": 0 - }, - { - "Couleur": 4 - }, - { - "Couleur": 0 - }, - { - "Couleur": 4 - } - ], - "TailleMax": 4 - }, - "codes": [ ], - "indicateurs": [ ] - } - ] - }, - { - "Regles": { - "__type": "ReglesClassiques:#CoreLibrary.Regles" - }, - "Termine": false, - "Tour": 1, - "courant": 0, - "joueurs": [ - "e", - "f" - ], - "plateaux": [ - { - "TailleMax": 12, - "TailleMaxCode": 4, - "Victoire": false, - "codeSecret": { - "Jetons": [ - { - "Couleur": 0 - }, - { - "Couleur": 3 - }, - { - "Couleur": 0 - }, - { - "Couleur": 2 - } - ], - "TailleMax": 4 - }, - "codes": [ ], - "indicateurs": [ ] - }, - { - "TailleMax": 12, - "TailleMaxCode": 4, - "Victoire": false, - "codeSecret": { - "Jetons": [ - { - "Couleur": 0 - }, - { - "Couleur": 0 - }, - { - "Couleur": 2 - }, - { - "Couleur": 3 - } - ], - "TailleMax": 4 - }, - "codes": [ ], - "indicateurs": [ ] - } - ] - } -] \ No newline at end of file diff --git a/Sources/MauiSpark/Pages/ClassementPage.xaml b/Sources/MauiSpark/Pages/ClassementPage.xaml index 34defd9..f025c92 100644 --- a/Sources/MauiSpark/Pages/ClassementPage.xaml +++ b/Sources/MauiSpark/Pages/ClassementPage.xaml @@ -14,8 +14,9 @@ - +