diff --git a/Sources/CoreLibrary/Regles/IRegles.cs b/Sources/CoreLibrary/Regles/IRegles.cs
index 27ab32e..3e2c299 100644
--- a/Sources/CoreLibrary/Regles/IRegles.cs
+++ b/Sources/CoreLibrary/Regles/IRegles.cs
@@ -2,9 +2,13 @@
{
public interface IRegles
{
+ int Indice { get; }
string Nom { get; }
+ string Description { get; }
int NbJoueurs { get; }
int NbTour { get; }
int TailleCode { get; }
+ bool Equals(object? obj);
+ int GetHashCode();
}
}
diff --git a/Sources/CoreLibrary/Regles/ReglesClassiques.cs b/Sources/CoreLibrary/Regles/ReglesClassiques.cs
index a2718df..36c5902 100644
--- a/Sources/CoreLibrary/Regles/ReglesClassiques.cs
+++ b/Sources/CoreLibrary/Regles/ReglesClassiques.cs
@@ -5,20 +5,13 @@ namespace CoreLibrary.Regles
[DataContract]
public class ReglesClassiques : IRegles
{
+ public int Indice => 1;
public string Nom => "Règles classiques";
+ public string Description => "Le but du jeu est de découvrir la combinaison. On génère aléatoirement deux combinaisons de 4 couleurs (six couleurs au total : jaune, bleu, rouge, vert, blanc et noir), une combinaison pour chaque joueur. Deux joueurs se battent pour trouver la combinaison en premier, il y a douze tours. Le premier joueur à trouver la combinaison à gagner, chaque joueur a le même nombre de coups à réaliser. Donc si le joueur un à trouvé la solution au bout de huit coups, le joueur deux doit finir son huitième coup. Si le joueur deux trouve la combinaison, les deux joueurs sont à égalité. Sinon, le joueur un gagne. Pour trouver la combinaison, les joueurs disposent de quatre indicateurs. Ces indicateurs sont quatre ronds qui représentent les quatre couleurs sélectionnées par le joueur. Un rond noir signifie qu’une couleur est à la bonne place, un rond blanc correspond à une mauvaise place et s'il n’y a pas d’indicateur aucune des couleurs n’est présentent dans la combinaison.";
public int NbJoueurs => 2;
public int NbTour => 12;
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);
- }
+ public override bool Equals(object? obj) => obj == null ? false : obj is ReglesClassiques;
+ public override int GetHashCode() => Nom.GetHashCode();
}
}
diff --git a/Sources/CoreLibrary/Regles/ReglesDifficiles.cs b/Sources/CoreLibrary/Regles/ReglesDifficiles.cs
index 9c6bfde..75c0dfc 100644
--- a/Sources/CoreLibrary/Regles/ReglesDifficiles.cs
+++ b/Sources/CoreLibrary/Regles/ReglesDifficiles.cs
@@ -5,20 +5,13 @@ namespace CoreLibrary.Regles
[DataContract]
public class ReglesDifficiles : IRegles
{
- public string Nom => "Règles difficile";
+ public int Indice => 2;
+ public string Nom => "Règles difficiles";
+ public string Description => "Le but du jeu est de découvrir la combinaison. On génère aléatoirement deux combinaisons de 6 couleurs (six couleurs au total : jaune, bleu, rouge, vert, blanc et noir), une combinaison pour chaque joueur. Deux joueurs se battent pour trouver la combinaison en premier, il y a douze tours. Le premier joueur à trouver la combinaison à gagner, chaque joueur a le même nombre de coups à réaliser. Donc si le joueur un à trouvé la solution au bout de huit coups, le joueur deux doit finir son huitième coup. Si le joueur deux trouve la combinaison, les deux joueurs sont à égalité. Sinon, le joueur un gagne. Pour trouver la combinaison, les joueurs disposent de quatre indicateurs. Ces indicateurs sont quatre ronds qui représentent les 6 couleurs sélectionnées par le joueur. Un rond noir signifie qu’une couleur est à la bonne place, un rond blanc correspond à une mauvaise place et s'il n’y a pas d’indicateur aucune des couleurs n’est présentent dans la combinaison.";
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);
- }
+ public override bool Equals(object? obj) => obj == null ? false : obj is ReglesDifficiles;
+ public override int GetHashCode() => Nom.GetHashCode();
}
}
diff --git a/Sources/Fichiers/joueurs.json b/Sources/Fichiers/joueurs.json
new file mode 100644
index 0000000..34c6e16
--- /dev/null
+++ b/Sources/Fichiers/joueurs.json
@@ -0,0 +1,125 @@
+[
+ {
+ "Nom": "Céleste",
+ "statistiques": [
+ {
+ "Key": {
+ "Item1": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Item2": 0
+ },
+ "Value": 2
+ },
+ {
+ "Key": {
+ "Item1": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Item2": 1
+ },
+ "Value": 1
+ },
+ {
+ "Key": {
+ "Item1": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Item2": 2
+ },
+ "Value": 0
+ },
+ {
+ "Key": {
+ "Item1": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Item2": 3
+ },
+ "Value": 5
+ }
+ ]
+ },
+ {
+ "Nom": "Pauline",
+ "statistiques": [
+ {
+ "Key": {
+ "Item1": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Item2": 0
+ },
+ "Value": 1
+ },
+ {
+ "Key": {
+ "Item1": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Item2": 1
+ },
+ "Value": 5
+ },
+ {
+ "Key": {
+ "Item1": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Item2": 2
+ },
+ "Value": 2
+ },
+ {
+ "Key": {
+ "Item1": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Item2": 3
+ },
+ "Value": 10
+ }
+ ]
+ },
+ {
+ "Nom": "Camille",
+ "statistiques": [
+ {
+ "Key": {
+ "Item1": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Item2": 0
+ },
+ "Value": 3
+ },
+ {
+ "Key": {
+ "Item1": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Item2": 1
+ },
+ "Value": 5
+ },
+ {
+ "Key": {
+ "Item1": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Item2": 2
+ },
+ "Value": 6
+ },
+ {
+ "Key": {
+ "Item1": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Item2": 3
+ },
+ "Value": 50
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/Sources/Fichiers/parties.json b/Sources/Fichiers/parties.json
new file mode 100644
index 0000000..de816af
--- /dev/null
+++ b/Sources/Fichiers/parties.json
@@ -0,0 +1,2578 @@
+[
+ {
+ "Regles": {
+ "__type": "ReglesDifficiles:#CoreLibrary.Regles"
+ },
+ "Termine": true,
+ "Tour": 6,
+ "courant": 1,
+ "joueurs": [
+ {
+ "Key": "Naps 1",
+ "Value": false
+ },
+ {
+ "Key": "Naps 2",
+ "Value": false
+ }
+ ],
+ "plateaux": [
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 6,
+ "Victoire": true,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 5
+ }
+ ],
+ "TailleMax": 6
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 5
+ }
+ ],
+ "TailleMax": 6
+ }
+ ],
+ "indicateurs": [
+ [ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 1,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 1,
+ 1
+ ],
+ [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ ]
+ },
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 6,
+ "Victoire": false,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 5
+ }
+ ],
+ "TailleMax": 6
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 5
+ }
+ ],
+ "TailleMax": 6
+ }
+ ],
+ "indicateurs": [
+ [ ],
+ [ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "Regles": {
+ "__type": "ReglesDifficiles:#CoreLibrary.Regles"
+ },
+ "Termine": true,
+ "Tour": 6,
+ "courant": 1,
+ "joueurs": [
+ {
+ "Key": "Naps 1",
+ "Value": false
+ },
+ {
+ "Key": "Naps 2",
+ "Value": false
+ }
+ ],
+ "plateaux": [
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 6,
+ "Victoire": true,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 4
+ }
+ ],
+ "TailleMax": 6
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 4
+ }
+ ],
+ "TailleMax": 6
+ }
+ ],
+ "indicateurs": [
+ [
+ 0
+ ],
+ [
+ 0,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ ]
+ },
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 6,
+ "Victoire": false,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ }
+ ],
+ "indicateurs": [
+ [
+ 0
+ ],
+ [
+ 0
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "Regles": {
+ "__type": "ReglesDifficiles:#CoreLibrary.Regles"
+ },
+ "Termine": true,
+ "Tour": 5,
+ "courant": 1,
+ "joueurs": [
+ {
+ "Key": "Naps 1",
+ "Value": false
+ },
+ {
+ "Key": "Naps 2",
+ "Value": false
+ }
+ ],
+ "plateaux": [
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 6,
+ "Victoire": false,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 5
+ }
+ ],
+ "TailleMax": 6
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ }
+ ],
+ "TailleMax": 6
+ }
+ ],
+ "indicateurs": [
+ [
+ 0
+ ],
+ [
+ 1
+ ],
+ [
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 1,
+ 1,
+ 1
+ ]
+ ]
+ },
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 6,
+ "Victoire": true,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 4
+ }
+ ],
+ "TailleMax": 6
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 4
+ }
+ ],
+ "TailleMax": 6
+ }
+ ],
+ "indicateurs": [
+ [
+ 0,
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0,
+ 1
+ ],
+ [
+ 0,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "Regles": {
+ "__type": "ReglesDifficiles:#CoreLibrary.Regles"
+ },
+ "Termine": true,
+ "Tour": 7,
+ "courant": 1,
+ "joueurs": [
+ {
+ "Key": "Naps 3",
+ "Value": false
+ },
+ {
+ "Key": "Naps 4",
+ "Value": false
+ }
+ ],
+ "plateaux": [
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 6,
+ "Victoire": true,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 4
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 5
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ }
+ ],
+ "indicateurs": [
+ [
+ 0,
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ ]
+ },
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 6,
+ "Victoire": false,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 5
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ }
+ ],
+ "indicateurs": [
+ [
+ 0
+ ],
+ [
+ 0,
+ 1
+ ],
+ [
+ 0,
+ 1,
+ 1
+ ],
+ [
+ 1,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "Regles": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Termine": false,
+ "Tour": 0,
+ "courant": 0,
+ "joueurs": [
+ {
+ "Key": "Naps 5",
+ "Value": false
+ }
+ ],
+ "plateaux": [
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 4,
+ "Victoire": false,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 4
+ },
+ "codes": [ ],
+ "indicateurs": [ ]
+ }
+ ]
+ },
+ {
+ "Regles": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Termine": true,
+ "Tour": 4,
+ "courant": 1,
+ "joueurs": [
+ {
+ "Key": "Naps 6",
+ "Value": false
+ },
+ {
+ "Key": "Céleste",
+ "Value": true
+ }
+ ],
+ "plateaux": [
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 4,
+ "Victoire": true,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 4
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 4
+ }
+ ],
+ "indicateurs": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ ]
+ },
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 4,
+ "Victoire": false,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 5
+ }
+ ],
+ "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": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 4
+ }
+ ],
+ "indicateurs": [
+ [ ],
+ [
+ 0
+ ],
+ [ ],
+ [ ]
+ ]
+ }
+ ]
+ },
+ {
+ "Regles": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Termine": false,
+ "Tour": 1,
+ "courant": 1,
+ "joueurs": [
+ {
+ "Key": "Robot",
+ "Value": true
+ },
+ {
+ "Key": "Céleste",
+ "Value": true
+ }
+ ],
+ "plateaux": [
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 4,
+ "Victoire": false,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 4
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 4
+ }
+ ],
+ "indicateurs": [
+ [
+ 0,
+ 0
+ ]
+ ]
+ },
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 4,
+ "Victoire": false,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 4
+ },
+ "codes": [ ],
+ "indicateurs": [ ]
+ }
+ ]
+ },
+ {
+ "Regles": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Termine": false,
+ "Tour": 3,
+ "courant": 0,
+ "joueurs": [
+ {
+ "Key": "Céleste",
+ "Value": true
+ },
+ {
+ "Key": "Naps 1",
+ "Value": false
+ }
+ ],
+ "plateaux": [
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 4,
+ "Victoire": false,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "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": [
+ [ ],
+ [ ]
+ ]
+ },
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 4,
+ "Victoire": false,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 4
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 4
+ }
+ ],
+ "indicateurs": [
+ [
+ 0
+ ],
+ [
+ 1
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "Regles": {
+ "__type": "ReglesDifficiles:#CoreLibrary.Regles"
+ },
+ "Termine": true,
+ "Tour": 5,
+ "courant": 1,
+ "joueurs": [
+ {
+ "Key": "Naps 1",
+ "Value": false
+ },
+ {
+ "Key": "Naps 2",
+ "Value": false
+ }
+ ],
+ "plateaux": [
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 6,
+ "Victoire": false,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 5
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ }
+ ],
+ "TailleMax": 6
+ }
+ ],
+ "indicateurs": [
+ [
+ 0
+ ],
+ [
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 1,
+ 1
+ ]
+ ]
+ },
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 6,
+ "Victoire": true,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ },
+ "codes": [
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 6
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 6
+ }
+ ],
+ "indicateurs": [
+ [
+ 0,
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ ]
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/Sources/MauiSpark/MauiSpark.csproj b/Sources/MauiSpark/MauiSpark.csproj
index 975823f..1f7a22a 100644
--- a/Sources/MauiSpark/MauiSpark.csproj
+++ b/Sources/MauiSpark/MauiSpark.csproj
@@ -130,6 +130,9 @@
MSBuild:Compile
+
+ MSBuild:Compile
+
MSBuild:Compile
diff --git a/Sources/MauiSpark/Pages/ClassementPage.xaml b/Sources/MauiSpark/Pages/ClassementPage.xaml
index 2a8b3bd..addd827 100644
--- a/Sources/MauiSpark/Pages/ClassementPage.xaml
+++ b/Sources/MauiSpark/Pages/ClassementPage.xaml
@@ -14,39 +14,51 @@
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
diff --git a/Sources/MauiSpark/Pages/ClassementPage.xaml.cs b/Sources/MauiSpark/Pages/ClassementPage.xaml.cs
index 90c629c..96e352c 100644
--- a/Sources/MauiSpark/Pages/ClassementPage.xaml.cs
+++ b/Sources/MauiSpark/Pages/ClassementPage.xaml.cs
@@ -1,139 +1,137 @@
-using CoreLibrary.Joueurs;
-using CoreLibrary.Statistiques;
-using CoreLibrary.Regles;
-using System.ComponentModel;
-using System.Runtime.CompilerServices;
-
-namespace MauiSpark.Pages
-{
- partial class Enfant
- {
- private readonly Classement classement;
-
- private int PartieJouee => PartieGagnee + PartieEgalite + PartiePerdue;
-
- public Joueur Joueur { get; set; }
- public int Place => classement.Enfants.ToList().IndexOf(this) + 1;
- public int NbCoupMoyen => PartieJouee > 0 ? Joueur.Statistique(classement.Regles, Statistique.CoupJoue) / PartieJouee : Joueur.Statistique(classement.Regles, Statistique.CoupJoue);
- public int PartieGagnee => Joueur.Statistique(classement.Regles, Statistique.PartieGagnee);
- public int PartiePerdue => Joueur.Statistique(classement.Regles, Statistique.PartiePerdue);
- public int PartieEgalite => Joueur.Statistique(classement.Regles, Statistique.PartieEgalite);
-
- public Enfant(Joueur joueur, Classement classement)
- {
- this.classement = classement;
- Joueur = joueur;
- }
-
- public override bool Equals(object? obj)
- {
- if (obj == null || obj is not Enfant)
- return false;
-
- return ((Enfant)obj).Joueur.Equals(Joueur);
- }
-
+using CoreLibrary.Joueurs;
+using CoreLibrary.Statistiques;
+using CoreLibrary.Regles;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+
+namespace MauiSpark.Pages
+{
+ partial class Enfant
+ {
+ private readonly Classement classement;
+
+ public Joueur Joueur { get; set; }
+ public int Place => classement.Enfants.ToList().IndexOf(this) + 1;
+ public IEnumerable Statistiques => Enum.GetValues()
+ .Select(statistique => Joueur.Statistique(classement.Regles, statistique));
+
+ public IEnumerable Objets => new List([$"{Place}", Joueur.Nom])
+ .Concat(Statistiques.Select(statistique => $"{statistique}"));
+
+ public Enfant(Joueur joueur, Classement classement)
+ {
+ this.classement = classement;
+ Joueur = joueur;
+ }
+
+ public override bool Equals(object? obj)
+ {
+ if (obj == null || obj is not Enfant)
+ return false;
+
+ return Joueur == ((Enfant)obj).Joueur;
+ }
+
public override int GetHashCode() => Joueur.GetHashCode();
- }
-
- partial class Classement : INotifyPropertyChanged
- {
- public event PropertyChangedEventHandler? PropertyChanged;
-
- public void QuandProprieteChangee([CallerMemberName] string? nomPropriete = null)
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nomPropriete));
- }
-
- private static Dictionary> Tris => new Dictionary> {
- { "Nom", Comparer.Create((enfant1, enfant2) => string.Compare(enfant1.Joueur.Nom, enfant2.Joueur.Nom)) },
- { "CoupMoyen", Comparer.Create((enfant1, enfant2) => enfant2.NbCoupMoyen - enfant1.NbCoupMoyen) },
- { "Gagnee", Comparer.Create((enfant1, enfant2) => enfant2.PartieGagnee - enfant1.PartieGagnee) },
- { "Perdue", Comparer.Create((enfant1, enfant2) => enfant2.PartiePerdue - enfant1.PartiePerdue) },
- { "Egalite", Comparer.Create((enfant1, enfant2) => enfant2.PartieEgalite - enfant1.PartieEgalite) },
- };
-
- private string typeTri = "CoupMoyen";
- public string TypeTri {
- get
- {
- return typeTri;
- }
- set
- {
- typeTri = value;
- QuandProprieteChangee(nameof(Enfants));
- }
- }
-
- private bool inverser = false;
- public bool Inverser
- {
- get
- {
- return inverser;
- }
- set
- {
- inverser = value;
- QuandProprieteChangee(nameof(Enfants));
- }
- }
-
- private IRegles regles = new ReglesClassiques();
- public IRegles Regles
- {
- get
- {
- return regles;
- }
- set
- {
- regles = value;
- QuandProprieteChangee(nameof(Enfants));
- }
- }
-
- public IComparer Tri => Tris.GetValueOrDefault(TypeTri) ?? Tris["CoupMoyen"];
- public IEnumerable Enfants => Inverser ?
- MauiProgram.Manageur.Joueurs.Select(joueur => new Enfant(joueur, this)).Order(Tri).Reverse() :
- MauiProgram.Manageur.Joueurs.Select(joueur => new Enfant(joueur, this)).Order(Tri);
- }
-
- public partial class ClassementPage : ContentPage
- {
- public ClassementPage()
- {
- InitializeComponent();
-
- NavigationPage.SetHasNavigationBar(this, false);
-
- BindingContext = new Classement();
- }
-
- private void QuandBoutonPresse(object sender, EventArgs e)
- {
- Classement classement = (Classement)BindingContext;
-
- if (sender == ReglesClassiques)
- {
- classement.Regles = new ReglesClassiques();
- return;
- }
-
- if (sender == ReglesDifficiles)
- {
- classement.Regles = new ReglesDifficiles();
- return;
- }
-
- if (classement.TypeTri == nameof(sender)) {
- classement.Inverser = !classement.Inverser;
- return;
- }
-
- classement.Inverser = false;
- classement.TypeTri = nameof(sender);
- }
- }
+ }
+
+ partial class Classement : INotifyPropertyChanged
+ {
+
+ public event PropertyChangedEventHandler? PropertyChanged;
+
+ public void QuandProprieteChangee([CallerMemberName] string? propriete = null) =>
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propriete));
+
+ private int indiceRegles = 0;
+ public IRegles Regles => ClassementPage.ToutesRegles.ElementAt(indiceRegles);
+
+ private Statistique statistique = Enum.GetValues().First();
+ public Statistique Statistique
+ {
+ get => statistique;
+ set
+ {
+ statistique = value;
+ QuandProprieteChangee(nameof(Enfants));
+ }
+ }
+
+ private bool inverser = true;
+ public bool Inverser {
+ get => inverser;
+ set
+ {
+ inverser = value;
+ QuandProprieteChangee(nameof(Enfants));
+ }
+ }
+
+ public IEnumerable Titres => new List(["Place", "Nom"]).Concat(
+ Enum.GetValues().Select(
+ statistique => string.Concat((Enum.GetName(typeof(Statistique), statistique) ?? "").Select(
+ (lettre, indice) => indice > 0 && char.IsUpper(lettre) ? $" {lettre}" : $"{lettre}")
+ )
+ )
+ );
+
+ public IEnumerable Enfants => Inverser ?
+ MauiProgram.Manageur.Joueurs
+ .OrderBy(joueur => joueur.Statistique(Regles, Statistique))
+ .Select(joueur => new Enfant(joueur, this)).Reverse() :
+ MauiProgram.Manageur.Joueurs
+ .OrderBy(joueur => joueur.Statistique(Regles, Statistique))
+ .Select(joueur => new Enfant(joueur, this));
+
+ public void IncrementerRegles(int valeur)
+ {
+ if ((indiceRegles += valeur) < 0)
+ indiceRegles = ClassementPage.ToutesRegles.Count() - 1;
+ else if (indiceRegles >= ClassementPage.ToutesRegles.Count())
+ indiceRegles = 0;
+
+ QuandProprieteChangee(nameof(Regles));
+ QuandProprieteChangee(nameof(Enfants));
+ }
+ }
+
+ public partial class ClassementPage : ContentPage
+ {
+ public static IEnumerable ToutesRegles => typeof(IRegles).Assembly.GetTypes()
+ .Where(type => typeof(IRegles).IsAssignableFrom(type) && type.IsClass)
+ .Select(type => (Activator.CreateInstance(type) as IRegles)!)
+ .OrderBy(regles => regles.Indice);
+
+ public ClassementPage()
+ {
+ InitializeComponent();
+
+ NavigationPage.SetHasNavigationBar(this, false);
+
+ BindingContext = new Classement();
+ }
+
+ public void ChangerReglesPresse(object sender, EventArgs e)
+ {
+ ((Classement)BindingContext).IncrementerRegles(sender == DiminuerRegles ? -1 : 1);
+ }
+
+ public void StatistiquePressee(object sender, EventArgs e)
+ {
+ if (sender is not Label || !Enum.IsDefined(typeof(Statistique), ((Label)sender).Text.Replace(" ", "")))
+ return;
+
+ Statistique statistique = Enum.Parse(((Label)sender).Text.Replace(" ", ""));
+ Classement classement = (Classement)BindingContext;
+
+ if (classement.Statistique == statistique)
+ {
+ classement.Inverser = !classement.Inverser;
+ return;
+ }
+
+ classement.Inverser = true;
+ classement.Statistique = statistique;
+ }
+ }
}
\ No newline at end of file
diff --git a/Sources/MauiSpark/Pages/ModePage.xaml b/Sources/MauiSpark/Pages/ModePage.xaml
index 8916ed2..0748b8d 100644
--- a/Sources/MauiSpark/Pages/ModePage.xaml
+++ b/Sources/MauiSpark/Pages/ModePage.xaml
@@ -4,22 +4,18 @@
x:Class="MauiSpark.Pages.ModePage"
xmlns:vues="clr-namespace:MauiSpark.Vues"
Title="ModePage">
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sources/MauiSpark/Pages/ModePage.xaml.cs b/Sources/MauiSpark/Pages/ModePage.xaml.cs
index 57e60fd..a54d434 100644
--- a/Sources/MauiSpark/Pages/ModePage.xaml.cs
+++ b/Sources/MauiSpark/Pages/ModePage.xaml.cs
@@ -1,4 +1,3 @@
-using CoreLibrary;
using CoreLibrary.Regles;
namespace MauiSpark.Pages;
@@ -9,24 +8,11 @@ public partial class ModePage : ContentPage
{
NavigationPage.SetHasNavigationBar(this, false);
- InitializeComponent();
- }
-
- private void QuandReglesPresse(Object sender, EventArgs e)
- {
- Partie partie;
+ BindingContext = typeof(IRegles).Assembly.GetTypes()
+ .Where(type => typeof(IRegles).IsAssignableFrom(type) && type.IsClass)
+ .Select(type => (Activator.CreateInstance(type) as IRegles)!)
+ .OrderBy(regles => regles.Indice);
- if (sender.Equals(ReglesClassiques))
- partie = MauiProgram.Manageur.NouvellePartie(new ReglesClassiques());
- else if (sender.Equals(ReglesDifficiles))
- partie = MauiProgram.Manageur.NouvellePartie(new ReglesDifficiles());
- else
- return;
-
- partie.PartieDemanderJoueur += new ConnexionPage().QuandDemanderNom;
- partie.PartiePartieTerminee += new VictoirePage().QuandPartieTerminee;
- partie.PartieNouveauTour += new PlateauPage().QuandNouveauTour;
-
- partie.Jouer();
+ InitializeComponent();
}
}
\ No newline at end of file
diff --git a/Sources/MauiSpark/Pages/ReglesPage.xaml b/Sources/MauiSpark/Pages/ReglesPage.xaml
index e7779b6..c207aba 100644
--- a/Sources/MauiSpark/Pages/ReglesPage.xaml
+++ b/Sources/MauiSpark/Pages/ReglesPage.xaml
@@ -18,7 +18,7 @@
-
+
diff --git a/Sources/MauiSpark/Pages/ReglesPage.xaml.cs b/Sources/MauiSpark/Pages/ReglesPage.xaml.cs
index fe47dc4..b353245 100644
--- a/Sources/MauiSpark/Pages/ReglesPage.xaml.cs
+++ b/Sources/MauiSpark/Pages/ReglesPage.xaml.cs
@@ -1,33 +1,18 @@
-namespace MauiSpark.Pages;
+using CoreLibrary.Regles;
-internal class Regles
-{
- public string Titre { get; init; } = "";
- public string Description { get; init; } = "";
-}
+namespace MauiSpark.Pages;
public partial class ReglesPage : ContentPage
-{
- private static readonly Regles reglesClassiques = new Regles()
- {
- Titre = "Règles classiques",
- Description = "Le but du jeu est de découvrir la combinaison. On génère aléatoirement deux combinaisons de 4 couleurs (six couleurs au total : jaune, bleu, rouge, vert, blanc et noir), une combinaison pour chaque joueur. Deux joueurs se battent pour trouver la combinaison en premier, il y a douze tours. Le premier joueur à trouver la combinaison à gagner, chaque joueur a le même nombre de coups à réaliser. Donc si le joueur un à trouvé la solution au bout de huit coups, le joueur deux doit finir son huitième coup. Si le joueur deux trouve la combinaison, les deux joueurs sont à égalité. Sinon, le joueur un gagne. Pour trouver la combinaison, les joueurs disposent de quatre indicateurs. Ces indicateurs sont quatre ronds qui représentent les quatre couleurs sélectionnées par le joueur. Un rond noir signifie qu’une couleur est à la bonne place, un rond blanc correspond à une mauvaise place et s'il n’y a pas d’indicateur aucune des couleurs n’est présentent dans la combinaison."
- };
-
- private static readonly Regles reglesDifficiles = new Regles()
- {
- Titre = "Règles difficiles",
- Description = "Le but du jeu est de découvrir la combinaison. On génère aléatoirement deux combinaisons de 6 couleurs (six couleurs au total : jaune, bleu, rouge, vert, blanc et noir), une combinaison pour chaque joueur. Deux joueurs se battent pour trouver la combinaison en premier, il y a douze tours. Le premier joueur à trouver la combinaison à gagner, chaque joueur a le même nombre de coups à réaliser. Donc si le joueur un à trouvé la solution au bout de huit coups, le joueur deux doit finir son huitième coup. Si le joueur deux trouve la combinaison, les deux joueurs sont à égalité. Sinon, le joueur un gagne. Pour trouver la combinaison, les joueurs disposent de quatre indicateurs. Ces indicateurs sont quatre ronds qui représentent les 6 couleurs sélectionnées par le joueur. Un rond noir signifie qu’une couleur est à la bonne place, un rond blanc correspond à une mauvaise place et s'il n’y a pas d’indicateur aucune des couleurs n’est présentent dans la combinaison."
- };
-
+{
public ReglesPage()
{
NavigationPage.SetHasNavigationBar(this, false);
- BindingContext = (Regles[])[
- reglesClassiques,reglesDifficiles
- ];
-
- InitializeComponent();
+ BindingContext = typeof(IRegles).Assembly.GetTypes()
+ .Where(type => typeof(IRegles).IsAssignableFrom(type) && type.IsClass)
+ .Select(type => (Activator.CreateInstance(type) as IRegles)!)
+ .OrderBy(regles => regles.Indice);
+
+ InitializeComponent();
}
}
\ No newline at end of file
diff --git a/Sources/MauiSpark/Resources/Styles/Styles.xaml b/Sources/MauiSpark/Resources/Styles/Styles.xaml
index 823693f..4a9d2d8 100644
--- a/Sources/MauiSpark/Resources/Styles/Styles.xaml
+++ b/Sources/MauiSpark/Resources/Styles/Styles.xaml
@@ -20,18 +20,12 @@
-
-
-
diff --git a/Sources/MauiSpark/Vues/ModeVue.xaml b/Sources/MauiSpark/Vues/ModeVue.xaml
new file mode 100644
index 0000000..7d0938a
--- /dev/null
+++ b/Sources/MauiSpark/Vues/ModeVue.xaml
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/Sources/MauiSpark/Vues/ModeVue.xaml.cs b/Sources/MauiSpark/Vues/ModeVue.xaml.cs
new file mode 100644
index 0000000..a30f109
--- /dev/null
+++ b/Sources/MauiSpark/Vues/ModeVue.xaml.cs
@@ -0,0 +1,32 @@
+using CoreLibrary;
+using CoreLibrary.Regles;
+using MauiSpark.Pages;
+
+namespace MauiSpark.Vues;
+
+public partial class ModeVue : ContentView
+{
+ public static readonly BindableProperty ReglesProperty = BindableProperty.Create(nameof(Regles), typeof(IRegles), typeof(ModeVue), null);
+
+ public IRegles Regles
+ {
+ get => (IRegles)GetValue(ReglesProperty);
+ set => SetValue(ReglesProperty, value);
+ }
+
+ public ModeVue()
+ {
+ InitializeComponent();
+ }
+
+ private void QuandReglesPresse(Object sender, EventArgs e)
+ {
+ Partie partie = MauiProgram.Manageur.NouvellePartie(Regles);
+
+ partie.PartieDemanderJoueur += new ConnexionPage().QuandDemanderNom;
+ partie.PartiePartieTerminee += new VictoirePage().QuandPartieTerminee;
+ partie.PartieNouveauTour += new PlateauPage().QuandNouveauTour;
+
+ partie.Jouer();
+ }
+}
\ No newline at end of file