diff --git a/Sources/ConsoleApp2/ConsoleApp2.csproj b/Sources/ConsoleApp2/ConsoleApp2.csproj
new file mode 100644
index 0000000..e168df2
--- /dev/null
+++ b/Sources/ConsoleApp2/ConsoleApp2.csproj
@@ -0,0 +1,15 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
diff --git a/Sources/ConsoleApp2/Program.cs b/Sources/ConsoleApp2/Program.cs
new file mode 100644
index 0000000..5f28270
--- /dev/null
+++ b/Sources/ConsoleApp2/Program.cs
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Sources/Fichiers/joueurs.json b/Sources/Fichiers/joueurs.json
index 5967433..356feb3 100644
--- a/Sources/Fichiers/joueurs.json
+++ b/Sources/Fichiers/joueurs.json
@@ -9,7 +9,7 @@
},
"Item2": 0
},
- "Value": 2
+ "Value": 8.666666666666666
},
{
"Key": {
@@ -18,25 +18,7 @@
},
"Item2": 1
},
- "Value": 1
- },
- {
- "Key": {
- "Item1": {
- "__type": "ReglesClassiques:#CoreLibrary.Regles"
- },
- "Item2": 2
- },
- "Value": 0
- },
- {
- "Key": {
- "Item1": {
- "__type": "ReglesClassiques:#CoreLibrary.Regles"
- },
- "Item2": 3
- },
- "Value": 5
+ "Value": 3
}
]
},
@@ -50,16 +32,7 @@
},
"Item2": 0
},
- "Value": 1
- },
- {
- "Key": {
- "Item1": {
- "__type": "ReglesClassiques:#CoreLibrary.Regles"
- },
- "Item2": 1
- },
- "Value": 5
+ "Value": 8.666666666666666
},
{
"Key": {
@@ -68,71 +41,7 @@
},
"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
- }
- ]
- },
- {
- "Nom": "a",
- "statistiques": [
- {
- "Key": {
- "Item1": {
- "__type": "ReglesClassiques:#CoreLibrary.Regles"
- },
- "Item2": 3
- },
- "Value": 1
}
]
}
diff --git a/Sources/Fichiers/parties.json b/Sources/Fichiers/parties.json
index e85bbd1..c81f9ae 100644
--- a/Sources/Fichiers/parties.json
+++ b/Sources/Fichiers/parties.json
@@ -1,48 +1,42 @@
[
{
"Regles": {
- "__type": "ReglesDifficiles:#CoreLibrary.Regles"
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
},
"Termine": true,
- "Tour": 6,
+ "Tour": 11,
"courant": 1,
"joueurs": [
{
- "Key": "Naps 1",
- "Value": false
+ "Key": "Céleste",
+ "Value": true
},
{
- "Key": "Naps 2",
- "Value": false
+ "Key": "Pauline",
+ "Value": true
}
],
"plateaux": [
{
"TailleMax": 12,
- "TailleMaxCode": 6,
+ "TailleMaxCode": 4,
"Victoire": true,
"codeSecret": {
"Jetons": [
{
- "Couleur": 3
- },
- {
- "Couleur": 2
- },
- {
- "Couleur": 1
+ "Couleur": 4
},
{
- "Couleur": 1
+ "Couleur": 5
},
{
- "Couleur": 5
+ "Couleur": 4
},
{
- "Couleur": 5
+ "Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
"codes": [
{
@@ -56,17 +50,11 @@
{
"Couleur": 0
},
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
{
"Couleur": 0
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
@@ -81,38 +69,60 @@
},
{
"Couleur": 1
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 2
},
{
- "Couleur": 1
+ "Couleur": 2
},
{
- "Couleur": 1
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
{
- "Couleur": 1
+ "Couleur": 3
},
{
- "Couleur": 1
+ "Couleur": 3
},
{
- "Couleur": 2
+ "Couleur": 3
},
{
- "Couleur": 2
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 4
},
{
- "Couleur": 2
+ "Couleur": 4
},
{
- "Couleur": 2
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
@@ -120,96 +130,139 @@
"Couleur": 2
},
{
- "Couleur": 3
+ "Couleur": 4
},
{
- "Couleur": 1
+ "Couleur": 4
},
{
- "Couleur": 1
+ "Couleur": 5
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 4
},
{
- "Couleur": 3
+ "Couleur": 2
},
{
- "Couleur": 3
+ "Couleur": 5
+ },
+ {
+ "Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
{
- "Couleur": 2
+ "Couleur": 0
},
{
- "Couleur": 3
+ "Couleur": 0
},
{
- "Couleur": 4
+ "Couleur": 0
},
{
"Couleur": 4
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
},
{
- "Couleur": 1
+ "Couleur": 0
},
{
- "Couleur": 1
+ "Couleur": 0
+ },
+ {
+ "Couleur": 5
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
{
- "Couleur": 3
+ "Couleur": 4
},
{
- "Couleur": 2
+ "Couleur": 4
},
{
- "Couleur": 1
+ "Couleur": 5
},
{
- "Couleur": 1
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 4
},
{
"Couleur": 5
},
{
- "Couleur": 5
+ "Couleur": 4
+ },
+ {
+ "Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
}
],
"indicateurs": [
+ [ ],
+ [ ],
+ [
+ 0
+ ],
[ ],
[
0,
0
],
[
+ 0,
1,
1,
1
],
[
- 0,
0,
1,
+ 1,
+ 1
+ ],
+ [
1
],
[
- 1,
- 1,
- 1,
1
],
[
0,
0,
+ 1,
+ 1
+ ],
+ [
0,
0,
0,
@@ -219,40 +272,62 @@
},
{
"TailleMax": 12,
- "TailleMaxCode": 6,
+ "TailleMaxCode": 4,
"Victoire": false,
"codeSecret": {
"Jetons": [
{
- "Couleur": 5
- },
- {
- "Couleur": 5
- },
- {
- "Couleur": 5
+ "Couleur": 3
},
{
- "Couleur": 2
+ "Couleur": 4
},
{
- "Couleur": 2
+ "Couleur": 0
},
{
- "Couleur": 5
+ "Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
"codes": [
{
"Jetons": [
{
- "Couleur": 0
+ "Couleur": 1
},
{
- "Couleur": 0
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
},
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
{
"Couleur": 0
},
@@ -266,16 +341,27 @@
"Couleur": 0
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
{
- "Couleur": 1
+ "Couleur": 3
},
{
- "Couleur": 1
+ "Couleur": 3
},
+ {
+ "Couleur": 3
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
{
"Couleur": 1
},
@@ -289,7 +375,7 @@
"Couleur": 1
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
@@ -299,6 +385,17 @@
{
"Couleur": 2
},
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
{
"Couleur": 2
},
@@ -312,7 +409,7 @@
"Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
@@ -323,28 +420,16 @@
"Couleur": 2
},
{
- "Couleur": 3
- },
- {
- "Couleur": 3
- },
- {
- "Couleur": 3
+ "Couleur": 2
},
{
- "Couleur": 3
+ "Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
- {
- "Couleur": 4
- },
- {
- "Couleur": 4
- },
{
"Couleur": 2
},
@@ -352,109 +437,147 @@
"Couleur": 2
},
{
- "Couleur": 4
+ "Couleur": 2
},
{
- "Couleur": 4
+ "Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
{
- "Couleur": 5
+ "Couleur": 2
},
{
- "Couleur": 5
+ "Couleur": 2
},
{
"Couleur": 2
},
{
- "Couleur": 5
- },
+ "Couleur": 2
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
{
"Couleur": 2
},
{
- "Couleur": 5
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
}
],
"indicateurs": [
[ ],
[ ],
[
- 0,
0
],
[
- 1,
- 1
- ],
- [
- 0,
- 1
+ 0
],
- [
- 0,
- 0,
- 0,
- 0,
- 1,
- 1
- ]
+ [ ],
+ [ ],
+ [ ],
+ [ ],
+ [ ],
+ [ ],
+ [ ]
]
}
]
},
{
"Regles": {
- "__type": "ReglesDifficiles:#CoreLibrary.Regles"
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
+ },
+ "Termine": false,
+ "Tour": 0,
+ "courant": 0,
+ "joueurs": [
+ {
+ "Key": "Joueur 1",
+ "Value": true
+ }
+ ],
+ "plateaux": [
+ {
+ "TailleMax": 12,
+ "TailleMaxCode": 4,
+ "Victoire": false,
+ "codeSecret": {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 2
+ },
+ {
+ "Couleur": 3
+ }
+ ],
+ "TailleMax": 4
+ },
+ "codes": [ ],
+ "indicateurs": [ ]
+ }
+ ]
+ },
+ {
+ "Regles": {
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
},
"Termine": true,
- "Tour": 6,
+ "Tour": 9,
"courant": 1,
"joueurs": [
{
- "Key": "Naps 1",
- "Value": false
+ "Key": "Céleste",
+ "Value": true
},
{
- "Key": "Naps 2",
- "Value": false
+ "Key": "Pauline",
+ "Value": true
}
],
"plateaux": [
{
"TailleMax": 12,
- "TailleMaxCode": 6,
+ "TailleMaxCode": 4,
"Victoire": true,
"codeSecret": {
"Jetons": [
- {
- "Couleur": 1
- },
- {
- "Couleur": 1
- },
{
"Couleur": 3
},
{
- "Couleur": 4
+ "Couleur": 1
},
{
- "Couleur": 0
+ "Couleur": 1
},
{
"Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
"codes": [
{
@@ -468,26 +591,14 @@
{
"Couleur": 0
},
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
{
"Couleur": 0
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
- {
- "Couleur": 0
- },
- {
- "Couleur": 1
- },
{
"Couleur": 1
},
@@ -501,18 +612,12 @@
"Couleur": 1
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
{
- "Couleur": 1
- },
- {
- "Couleur": 0
- },
- {
- "Couleur": 1
+ "Couleur": 2
},
{
"Couleur": 2
@@ -524,30 +629,41 @@
"Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
{
- "Couleur": 1
+ "Couleur": 3
},
{
- "Couleur": 1
+ "Couleur": 3
},
{
- "Couleur": 0
+ "Couleur": 3
},
{
"Couleur": 3
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 4
},
{
- "Couleur": 3
+ "Couleur": 4
},
{
- "Couleur": 3
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
@@ -560,55 +676,76 @@
{
"Couleur": 3
},
+ {
+ "Couleur": 4
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
+ },
{
"Couleur": 0
},
{
- "Couleur": 4
+ "Couleur": 3
},
{
"Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
{
- "Couleur": 1
+ "Couleur": 0
},
{
- "Couleur": 1
+ "Couleur": 0
},
{
- "Couleur": 3
+ "Couleur": 0
},
{
"Couleur": 4
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 3
},
{
- "Couleur": 0
+ "Couleur": 1
+ },
+ {
+ "Couleur": 1
},
{
"Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
}
],
"indicateurs": [
+ [ ],
[
+ 0,
0
],
+ [ ],
[
- 0,
- 1,
- 1
+ 0
],
[
- 0,
- 1,
- 1
+ 0
],
[
0,
@@ -618,15 +755,12 @@
],
[
0,
- 0,
- 0,
- 0,
- 1,
1
],
[
- 0,
- 0,
+ 0
+ ],
+ [
0,
0,
0,
@@ -636,63 +770,45 @@
},
{
"TailleMax": 12,
- "TailleMaxCode": 6,
+ "TailleMaxCode": 4,
"Victoire": false,
"codeSecret": {
"Jetons": [
{
- "Couleur": 0
- },
- {
- "Couleur": 5
- },
- {
- "Couleur": 2
+ "Couleur": 4
},
{
- "Couleur": 3
+ "Couleur": 0
},
{
- "Couleur": 2
+ "Couleur": 4
},
{
- "Couleur": 2
+ "Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
"codes": [
{
"Jetons": [
{
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
+ "Couleur": 1
},
{
- "Couleur": 0
+ "Couleur": 1
},
{
- "Couleur": 0
+ "Couleur": 1
},
{
- "Couleur": 0
+ "Couleur": 1
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
- {
- "Couleur": 0
- },
- {
- "Couleur": 1
- },
{
"Couleur": 1
},
@@ -706,16 +822,10 @@
"Couleur": 1
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
- {
- "Couleur": 0
- },
- {
- "Couleur": 2
- },
{
"Couleur": 2
},
@@ -729,13 +839,10 @@
"Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
- {
- "Couleur": 0
- },
{
"Couleur": 2
},
@@ -746,36 +853,44 @@
"Couleur": 2
},
{
- "Couleur": 3
- },
- {
- "Couleur": 3
+ "Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
{
- "Couleur": 0
- },
- {
- "Couleur": 2
+ "Couleur": 4
},
{
- "Couleur": 3
+ "Couleur": 4
},
{
"Couleur": 4
},
{
- "Couleur": 2
- },
+ "Couleur": 4
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
{
- "Couleur": 2
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
@@ -783,58 +898,77 @@
"Couleur": 0
},
{
- "Couleur": 3
+ "Couleur": 0
},
{
- "Couleur": 2
+ "Couleur": 0
},
{
- "Couleur": 5
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 0
},
{
- "Couleur": 2
+ "Couleur": 0
},
{
- "Couleur": 2
+ "Couleur": 0
+ },
+ {
+ "Couleur": 0
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
}
],
"indicateurs": [
+ [ ],
+ [ ],
+ [ ],
+ [ ],
[
+ 0,
+ 0,
0
],
[
- 0
- ],
- [
- 0,
0,
0,
0
],
[
- 0,
- 0,
- 1,
- 1,
- 1
+ 0
],
[
- 0,
- 0,
- 0,
- 1,
- 1
+ 0
],
[
0,
0,
- 0,
- 0,
- 1,
- 1
+ 0
]
]
}
@@ -842,48 +976,42 @@
},
{
"Regles": {
- "__type": "ReglesDifficiles:#CoreLibrary.Regles"
+ "__type": "ReglesClassiques:#CoreLibrary.Regles"
},
"Termine": true,
- "Tour": 5,
+ "Tour": 7,
"courant": 1,
"joueurs": [
{
- "Key": "Naps 1",
- "Value": false
+ "Key": "Céleste",
+ "Value": true
},
{
- "Key": "Naps 2",
- "Value": false
+ "Key": "Pauline",
+ "Value": true
}
],
"plateaux": [
{
"TailleMax": 12,
- "TailleMaxCode": 6,
- "Victoire": false,
+ "TailleMaxCode": 4,
+ "Victoire": true,
"codeSecret": {
"Jetons": [
{
- "Couleur": 4
+ "Couleur": 0
},
{
- "Couleur": 2
+ "Couleur": 1
},
{
"Couleur": 4
},
{
- "Couleur": 3
- },
- {
- "Couleur": 0
- },
- {
- "Couleur": 5
+ "Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
"codes": [
{
@@ -897,26 +1025,14 @@
{
"Couleur": 0
},
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
{
"Couleur": 0
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
- {
- "Couleur": 0
- },
- {
- "Couleur": 1
- },
{
"Couleur": 1
},
@@ -930,16 +1046,10 @@
"Couleur": 1
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
- {
- "Couleur": 2
- },
- {
- "Couleur": 0
- },
{
"Couleur": 2
},
@@ -953,7 +1063,7 @@
"Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
@@ -961,37 +1071,59 @@
"Couleur": 3
},
{
- "Couleur": 2
+ "Couleur": 3
},
{
- "Couleur": 0
+ "Couleur": 3
},
{
"Couleur": 3
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
+ {
+ "Couleur": 4
},
{
- "Couleur": 3
+ "Couleur": 4
},
{
- "Couleur": 3
+ "Couleur": 4
+ },
+ {
+ "Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
{
- "Couleur": 3
+ "Couleur": 4
},
{
- "Couleur": 2
+ "Couleur": 4
},
{
- "Couleur": 4
+ "Couleur": 0
},
+ {
+ "Couleur": 1
+ }
+ ],
+ "TailleMax": 4
+ },
+ {
+ "Jetons": [
{
"Couleur": 0
},
+ {
+ "Couleur": 1
+ },
{
"Couleur": 4
},
@@ -999,7 +1131,7 @@
"Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
}
],
"indicateurs": [
@@ -1007,113 +1139,91 @@
0
],
[
- 1
+ 0
],
+ [ ],
+ [ ],
[
- 1,
- 1
+ 0,
+ 0
],
[
- 0,
- 0,
+ 1,
+ 1,
+ 1,
1
],
[
0,
0,
- 1,
- 1,
- 1
+ 0,
+ 0
]
]
},
{
"TailleMax": 12,
- "TailleMaxCode": 6,
- "Victoire": true,
+ "TailleMaxCode": 4,
+ "Victoire": false,
"codeSecret": {
"Jetons": [
{
- "Couleur": 0
- },
- {
- "Couleur": 3
- },
- {
- "Couleur": 0
+ "Couleur": 1
},
{
- "Couleur": 4
+ "Couleur": 2
},
{
- "Couleur": 0
+ "Couleur": 3
},
{
- "Couleur": 4
+ "Couleur": 3
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
"codes": [
{
"Jetons": [
{
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
+ "Couleur": 1
},
{
- "Couleur": 0
+ "Couleur": 1
},
{
- "Couleur": 0
+ "Couleur": 1
},
{
- "Couleur": 0
+ "Couleur": 1
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
{
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
+ "Couleur": 2
},
{
- "Couleur": 1
+ "Couleur": 2
},
{
- "Couleur": 1
+ "Couleur": 2
},
{
- "Couleur": 1
+ "Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
{
"Couleur": 2
},
{
- "Couleur": 0
+ "Couleur": 2
},
{
"Couleur": 2
@@ -1122,1339 +1232,44 @@
"Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
{
- "Couleur": 0
- },
- {
- "Couleur": 3
- },
- {
- "Couleur": 0
+ "Couleur": 2
},
{
- "Couleur": 3
+ "Couleur": 2
},
{
- "Couleur": 0
+ "Couleur": 2
},
{
- "Couleur": 3
+ "Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"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": 4
},
{
- "Couleur": 0
+ "Couleur": 4
},
{
- "Couleur": 0
+ "Couleur": 4
},
{
- "Couleur": 0
+ "Couleur": 4
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"Jetons": [
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
{
"Couleur": 1
},
@@ -2463,246 +1278,53 @@
},
{
"Couleur": 1
- }
- ],
- "TailleMax": 6
- },
- {
- "Jetons": [
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
- {
- "Couleur": 2
- },
- {
- "Couleur": 0
},
{
"Couleur": 1
- },
- {
- "Couleur": 2
}
],
- "TailleMax": 6
+ "TailleMax": 4
},
{
"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": 1
},
{
- "Couleur": 2
+ "Couleur": 1
},
{
"Couleur": 1
}
],
- "TailleMax": 6
+ "TailleMax": 4
}
],
"indicateurs": [
[
- 0,
- 0,
0
],
[
- 0,
- 0,
- 0,
- 1
+ 0
],
[
- 0,
- 0,
- 0,
- 1,
- 1
+ 0
],
[
- 0,
- 0,
- 1,
- 1,
- 1
+ 0
],
+ [ ],
[
- 0,
- 0,
- 0,
- 0,
- 0,
0
- ]
- ]
- }
- ]
- },
- {
- "Regles": {
- "__type": "ReglesClassiques:#CoreLibrary.Regles"
- },
- "Termine": false,
- "Tour": 2,
- "courant": 0,
- "joueurs": [
- {
- "Key": "a",
- "Value": true
- },
- {
- "Key": "Naps 1",
- "Value": false
- }
- ],
- "plateaux": [
- {
- "TailleMax": 12,
- "TailleMaxCode": 4,
- "Victoire": false,
- "codeSecret": {
- "Jetons": [
- {
- "Couleur": 3
- },
- {
- "Couleur": 5
- },
- {
- "Couleur": 1
- },
- {
- "Couleur": 4
- }
- ],
- "TailleMax": 4
- },
- "codes": [
- {
- "Jetons": [
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- }
- ],
- "TailleMax": 4
- }
- ],
- "indicateurs": [
- [ ]
- ]
- },
- {
- "TailleMax": 12,
- "TailleMaxCode": 4,
- "Victoire": false,
- "codeSecret": {
- "Jetons": [
- {
- "Couleur": 0
- },
- {
- "Couleur": 3
- },
- {
- "Couleur": 3
- },
- {
- "Couleur": 2
- }
],
- "TailleMax": 4
- },
- "codes": [
- {
- "Jetons": [
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- },
- {
- "Couleur": 0
- }
- ],
- "TailleMax": 4
- }
- ],
- "indicateurs": [
[
0
]
]
}
]
- },
- {
- "Regles": {
- "__type": "ReglesClassiques:#CoreLibrary.Regles"
- },
- "Termine": false,
- "Tour": 0,
- "courant": 0,
- "joueurs": [ ],
- "plateaux": [ ]
- },
- {
- "Regles": {
- "__type": "ReglesClassiques:#CoreLibrary.Regles"
- },
- "Termine": false,
- "Tour": 0,
- "courant": 0,
- "joueurs": [ ],
- "plateaux": [ ]
}
]
\ No newline at end of file
diff --git a/Sources/MauiSpark/MauiSpark.csproj b/Sources/MauiSpark/MauiSpark.csproj
index 1f7a22a..cfa95a2 100644
--- a/Sources/MauiSpark/MauiSpark.csproj
+++ b/Sources/MauiSpark/MauiSpark.csproj
@@ -64,6 +64,7 @@
+
diff --git a/Sources/Persistance/Persistance.csproj b/Sources/Persistance/Persistance.csproj
new file mode 100644
index 0000000..2383a7c
--- /dev/null
+++ b/Sources/Persistance/Persistance.csproj
@@ -0,0 +1,13 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/Sources/CoreLibrary/Persistance/PersistanceJSON.cs b/Sources/Persistance/PersistanceJson.cs
similarity index 96%
rename from Sources/CoreLibrary/Persistance/PersistanceJSON.cs
rename to Sources/Persistance/PersistanceJson.cs
index 8744bc4..ce2beb1 100644
--- a/Sources/CoreLibrary/Persistance/PersistanceJSON.cs
+++ b/Sources/Persistance/PersistanceJson.cs
@@ -1,95 +1,98 @@
-using System.Runtime.Serialization.Json;
-using System.Text;
-using System.Xml;
-
-namespace CoreLibrary.Persistance
-{
- ///
- /// Classe PersistanceJson, implémentant l'interface IPersistance, pour la persistance des données au format JSON.
- ///
- public class PersistanceJson : IPersistance
- {
- ///
- /// Chaîne de caractères représentant le nom du dossier pour sauvegarder et charger.
- ///
- private readonly string nomDossier = "Fichiers";
-
- ///
- /// Chaîne de caractères représentant le nom du doissier à la racine.
- ///
- private readonly string nomRacine = "Sources";
-
- ///
- /// Chaîne de caractères représentant le nom du dossier courant.
- ///
- private readonly string dossier = AppDomain.CurrentDomain.BaseDirectory;
-
- ///
- /// Constructeur de PersistanceJson.
- ///
- public PersistanceJson()
- {
- while (new DirectoryInfo(dossier).Name != nomRacine)
- dossier = Path.GetFullPath(Path.Combine(dossier, @"../"));
- }
-
- ///
- /// Charge les données trouvées dans le fichier de sauvegarde au format JSON.
- ///
- /// Renvoie un tableau de tous les éléments chargés.
- public T[] Charger() where T : IEstPersistant
- {
- string fichier = $"{typeof(T).Name.ToLower()}s.json";
-
- Directory.SetCurrentDirectory(dossier);
-
- if (!Directory.Exists(nomDossier))
- return [];
-
- Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), nomDossier));
-
- if (!File.Exists(fichier))
- return [];
-
- DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T[]));
- T[]? elements;
-
- using (FileStream s = File.OpenRead(fichier))
- {
- elements = jsonSerializer.ReadObject(s) as T[];
- }
-
- return elements != null ? elements : Array.Empty();
- }
-
- ///
- /// Enregistre les éléments spécifiés dans le fichier de sauvegarde au format JSON.
- ///
- /// Elements à enregistrer dans le fichier de sauvegarde.
- public void Enregistrer(T[] elements) where T : IEstPersistant
- {
- string fichier = $"{typeof(T).Name.ToLower()}s.json";
-
- Directory.SetCurrentDirectory(dossier);
-
- if (!Directory.Exists(nomDossier))
- Directory.CreateDirectory(nomDossier);
-
- Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), nomDossier));
-
- DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T[]));
-
- using (FileStream s = File.Create(fichier))
- {
- using (XmlDictionaryWriter writer = JsonReaderWriterFactory.CreateJsonWriter(
- s,
- Encoding.UTF8,
- false,
- true))
- {
- jsonSerializer.WriteObject(writer, elements);
- }
- }
- }
- }
-}
+using System.Runtime.Serialization.Json;
+using System.Text;
+using System.Diagnostics.CodeAnalysis;
+using System.Xml;
+using CoreLibrary.Persistance;
+
+namespace Persistance.Persistance
+{
+ ///
+ /// Classe PersistanceJson, implémentant l'interface IPersistance, pour la persistance des données au format JSON.
+ ///
+ [ExcludeFromCodeCoverage]
+ public class PersistanceJson : IPersistance
+ {
+ ///
+ /// Chaîne de caractères représentant le nom du dossier pour sauvegarder et charger.
+ ///
+ private readonly string nomDossier = "Fichiers";
+
+ ///
+ /// Chaîne de caractères représentant le nom du doissier à la racine.
+ ///
+ private readonly string nomRacine = "Sources";
+
+ ///
+ /// Chaîne de caractères représentant le nom du dossier courant.
+ ///
+ private readonly string dossier = AppDomain.CurrentDomain.BaseDirectory;
+
+ ///
+ /// Constructeur de PersistanceJson.
+ ///
+ public PersistanceJson()
+ {
+ while (new DirectoryInfo(dossier).Name != nomRacine)
+ dossier = Path.GetFullPath(Path.Combine(dossier, @"../"));
+ }
+
+ ///
+ /// Charge les données trouvées dans le fichier de sauvegarde au format JSON.
+ ///
+ /// Renvoie un tableau de tous les éléments chargés.
+ public T[] Charger() where T : IEstPersistant
+ {
+ string fichier = $"{typeof(T).Name.ToLower()}s.json";
+
+ Directory.SetCurrentDirectory(dossier);
+
+ if (!Directory.Exists(nomDossier))
+ return [];
+
+ Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), nomDossier));
+
+ if (!File.Exists(fichier))
+ return [];
+
+ DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T[]));
+ T[]? elements;
+
+ using (FileStream s = File.OpenRead(fichier))
+ {
+ elements = jsonSerializer.ReadObject(s) as T[];
+ }
+
+ return elements != null ? elements : Array.Empty();
+ }
+
+ ///
+ /// Enregistre les éléments spécifiés dans le fichier de sauvegarde au format JSON.
+ ///
+ /// Elements à enregistrer dans le fichier de sauvegarde.
+ public void Enregistrer(T[] elements) where T : IEstPersistant
+ {
+ string fichier = $"{typeof(T).Name.ToLower()}s.json";
+
+ Directory.SetCurrentDirectory(dossier);
+
+ if (!Directory.Exists(nomDossier))
+ Directory.CreateDirectory(nomDossier);
+
+ Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), nomDossier));
+
+ DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T[]));
+
+ using (FileStream s = File.Create(fichier))
+ {
+ using (XmlDictionaryWriter writer = JsonReaderWriterFactory.CreateJsonWriter(
+ s,
+ Encoding.UTF8,
+ false,
+ true))
+ {
+ jsonSerializer.WriteObject(writer, elements);
+ }
+ }
+ }
+ }
+}
diff --git a/Sources/Persistance/PersistanceStub.cs b/Sources/Persistance/PersistanceStub.cs
new file mode 100644
index 0000000..f427276
--- /dev/null
+++ b/Sources/Persistance/PersistanceStub.cs
@@ -0,0 +1,49 @@
+using CoreLibrary;
+using CoreLibrary.Joueurs;
+using CoreLibrary.Persistance;
+using CoreLibrary.Regles;
+using System.Diagnostics.CodeAnalysis;
+
+namespace Persistance.Persistance
+{
+ ///
+ /// Classe PersistanceStub, implémentant l'interface IPersistance, pour la persistance des données en brut dans le code.
+ ///
+ [ExcludeFromCodeCoverage]
+ public class PersistanceStub : IPersistance
+ {
+ ///
+ /// En fonction du type T, renvoie une liste d'éléments.
+ ///
+ /// Renvoie un tableau de tous les éléments chargés.
+ public T[] Charger() where T : IEstPersistant
+ {
+ if (typeof(T).Equals(typeof(Joueur)))
+ {
+ return [
+ (T)(object)new Joueur("Céleste"),
+ (T)(object)new Joueur("Pauline"),
+ (T)(object)new Joueur("Camille")
+ ];
+ }
+
+ if (typeof(T).Equals(typeof(Partie)))
+ {
+ return [
+ (T)(object)new Partie(new ReglesClassiques()),
+ (T)(object)new Partie(new ReglesDifficiles())
+ ];
+ }
+
+ return Array.Empty();
+ }
+
+ ///
+ /// Enregistre les éléments spécifiés dans le fichier de sauvegarde au format JSON.
+ ///
+ /// Elements à enregistrer dans le fichier de sauvegarde.
+ public void Enregistrer(T[] elements) where T : IEstPersistant
+ {
+ }
+ }
+}
diff --git a/Sources/UnitTesting/JoueurUT.cs b/Sources/UnitTesting/JoueurUT.cs
index d8a6b15..09cd638 100644
--- a/Sources/UnitTesting/JoueurUT.cs
+++ b/Sources/UnitTesting/JoueurUT.cs
@@ -122,7 +122,7 @@ namespace UnitTesting
ReglesClassiques regles = new ReglesClassiques();
Statistique statistique = new Statistique();
- int result = joueur.Statistique(regles, statistique);
+ double result = joueur.Statistique(regles, statistique);
Assert.Equal(0, result);
}
@@ -135,7 +135,7 @@ namespace UnitTesting
Statistique statistique = new Statistique();
joueur.IncrementerStatistique(regles, statistique);
- int result = joueur.Statistique(regles, statistique);
+ double result = joueur.Statistique(regles, statistique);
Assert.Equal(1, result);
}
@@ -148,7 +148,7 @@ namespace UnitTesting
Statistique statistique = new Statistique();
joueur.IncrementerStatistique(regles, statistique);
- int result = joueur.Statistique(regles, statistique);
+ double result = joueur.Statistique(regles, statistique);
Assert.Equal(1, result);
}
@@ -162,7 +162,7 @@ namespace UnitTesting
joueur.IncrementerStatistique(regles, statistique);
joueur.IncrementerStatistique(regles, statistique);
- int result = joueur.Statistique(regles, statistique);
+ double result = joueur.Statistique(regles, statistique);
Assert.Equal(2, result);
}
diff --git a/Sources/UnitTesting/ManagerUT.cs b/Sources/UnitTesting/ManagerUT.cs
deleted file mode 100644
index ffe3bd5..0000000
--- a/Sources/UnitTesting/ManagerUT.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using CoreLibrary.Manageurs;
-using CoreLibrary.Persistance;
-using Xunit;
-
-namespace UnitTesting
-{
- public class ManagerUT
- {
- [Fact]
- public void TestConstruteur()
- {
- IPersistance persistance = new PersistanceJson();
- Manageur manageur = new Manageur(persistance);
- Assert.NotNull(manageur.Joueurs);
- Assert.NotEmpty(manageur.Joueurs);
- }
- }
-}
diff --git a/Sources/UnitTesting/ManageurUT.cs b/Sources/UnitTesting/ManageurUT.cs
new file mode 100644
index 0000000..73d8300
--- /dev/null
+++ b/Sources/UnitTesting/ManageurUT.cs
@@ -0,0 +1,188 @@
+using CoreLibrary;
+using CoreLibrary.Evenements;
+using CoreLibrary.Joueurs;
+using CoreLibrary.Manageurs;
+using CoreLibrary.Persistance;
+using CoreLibrary.Regles;
+using Persistance.Persistance;
+using System.Reflection;
+using Xunit;
+
+namespace UnitTesting
+{
+ public class ManageurUT
+ {
+ [Fact]
+ public void TestConstruteur()
+ {
+ IPersistance persistance = new PersistanceStub();
+ Manageur manageur = new Manageur(persistance);
+
+ Assert.NotNull(manageur.Joueurs);
+ Assert.NotEmpty(manageur.Joueurs);
+
+ Assert.NotNull(manageur.Parties);
+ Assert.NotEmpty(manageur.Joueurs);
+
+ Assert.NotNull(manageur.PartiesNonTerminees);
+ Assert.NotEmpty(manageur.Joueurs);
+ }
+
+ [Fact]
+ public void TestSauvegarder()
+ {
+ IPersistance persistance = new PersistanceStub();
+ Manageur manageur = new Manageur(persistance);
+
+ MethodInfo? infosMethode = typeof(Manageur).GetMethod("Sauvegarder", BindingFlags.NonPublic | BindingFlags.Instance);
+ Assert.NotNull(infosMethode);
+ infosMethode.Invoke(manageur, []);
+ }
+
+ [Fact]
+ public void TestChargerPartie()
+ {
+ IPersistance persistance = new PersistanceStub();
+ Manageur manageur = new Manageur(persistance);
+
+ Partie partie = manageur.PartiesNonTerminees.First();
+
+ Partie nouvellePartie = manageur.ChargerPartie(partie);
+
+ Assert.DoesNotContain(partie, manageur.Parties);
+ Assert.DoesNotContain(partie, manageur.PartiesNonTerminees);
+
+ Assert.Contains(nouvellePartie, manageur.Parties);
+ Assert.Contains(nouvellePartie, manageur.PartiesNonTerminees);
+ }
+
+ [Fact]
+ public void TestNouvellePartie()
+ {
+ IPersistance persistance = new PersistanceStub();
+ Manageur manageur = new Manageur(persistance);
+
+ Partie nouvellePartie = manageur.NouvellePartie(new ReglesClassiques());
+
+ Assert.Contains(nouvellePartie, manageur.Parties);
+ Assert.Contains(nouvellePartie, manageur.PartiesNonTerminees);
+ }
+
+ [Fact]
+ public void TestEcouterPartie()
+ {
+ IPersistance persistance = new PersistanceStub();
+ Manageur manageur = new Manageur(persistance);
+
+ MethodInfo? infosMethode = typeof(Manageur).GetMethod("EcouterPartie", BindingFlags.NonPublic | BindingFlags.Instance);
+ Assert.NotNull(infosMethode);
+
+ Partie partie = new Partie(new ReglesClassiques());
+
+ FieldInfo? PartieDemanderJoueurInfos = typeof(Partie)
+ .GetField("PartieDemanderJoueur", BindingFlags.Instance | BindingFlags.NonPublic);
+
+ Assert.NotNull(PartieDemanderJoueurInfos);
+
+ EventHandler? PartieDemanderJoueur =
+ PartieDemanderJoueurInfos.GetValue(partie) as EventHandler;
+
+ FieldInfo? PartieDebutPartieInfos = typeof(Partie)
+ .GetField("PartieDebutPartie", BindingFlags.Instance | BindingFlags.NonPublic);
+
+ Assert.NotNull(PartieDebutPartieInfos);
+
+ EventHandler? PartieDebutPartie =
+ PartieDebutPartieInfos.GetValue(partie) as EventHandler;
+
+ FieldInfo? PartieDemanderJoueurJouerInfos = typeof(Partie)
+ .GetField("PartieDemanderJoueurJouer", BindingFlags.Instance | BindingFlags.NonPublic);
+
+ Assert.NotNull(PartieDemanderJoueurJouerInfos);
+
+ EventHandler? PartieDemanderJoueurJouer =
+ PartieDemanderJoueurJouerInfos.GetValue(partie) as EventHandler;
+
+ FieldInfo? PartiePasserLaMainInfos = typeof(Partie)
+ .GetField("PartiePasserLaMain", BindingFlags.Instance | BindingFlags.NonPublic);
+
+ Assert.NotNull(PartiePasserLaMainInfos);
+
+ EventHandler? PartiePasserLaMain =
+ PartiePasserLaMainInfos.GetValue(partie) as EventHandler;
+
+ FieldInfo? PartiePartieTermineeInfos = typeof(Partie)
+ .GetField("PartiePartieTerminee", BindingFlags.Instance | BindingFlags.NonPublic);
+
+ Assert.NotNull(PartiePartieTermineeInfos);
+
+ EventHandler? PartiePartieTerminee =
+ PartiePartieTermineeInfos.GetValue(partie) as EventHandler;
+
+ Assert.Null(PartieDemanderJoueur);
+ Assert.Null(PartieDebutPartie);
+ Assert.Null(PartieDemanderJoueurJouer);
+ Assert.Null(PartiePasserLaMain);
+ Assert.Null(PartiePartieTerminee);
+
+ infosMethode.Invoke(manageur, [partie]);
+
+ PartieDemanderJoueur =
+ PartieDemanderJoueurInfos.GetValue(partie) as EventHandler;
+
+ PartieDebutPartie =
+ PartieDebutPartieInfos.GetValue(partie) as EventHandler;
+
+ PartieDemanderJoueurJouer =
+ PartieDemanderJoueurJouerInfos.GetValue(partie) as EventHandler;
+
+ PartiePasserLaMain =
+ PartiePasserLaMainInfos.GetValue(partie) as EventHandler;
+
+ PartiePartieTerminee =
+ PartiePartieTermineeInfos.GetValue(partie) as EventHandler;
+
+ Assert.NotNull(PartieDemanderJoueur);
+ Assert.NotNull(PartieDebutPartie);
+ Assert.NotNull(PartieDemanderJoueurJouer);
+ Assert.NotNull(PartiePasserLaMain);
+ Assert.NotNull(PartiePartieTerminee);
+
+ Assert.NotEmpty(PartieDemanderJoueur.GetInvocationList());
+ Assert.NotEmpty(PartieDebutPartie.GetInvocationList());
+ Assert.NotEmpty(PartieDemanderJoueurJouer.GetInvocationList());
+ Assert.NotEmpty(PartiePasserLaMain.GetInvocationList());
+ Assert.NotEmpty(PartiePartieTerminee.GetInvocationList());
+ }
+
+ [Fact]
+ public void TestDemanderJoueurExistant()
+ {
+ IPersistance persistance = new PersistanceStub();
+ Manageur manageur = new Manageur(persistance);
+
+ MethodInfo? infosMethode = typeof(Manageur).GetMethod("DemanderJoueurExistant", BindingFlags.NonPublic | BindingFlags.Instance);
+ Assert.NotNull(infosMethode);
+
+ object? celeste = infosMethode.Invoke(manageur, ["Céleste"]);
+ Assert.NotNull(celeste);
+ Assert.IsType(celeste);
+
+ object? toto = infosMethode.Invoke(manageur, ["Toto"]);
+ Assert.Null(toto);
+ }
+
+ [Fact]
+ public void TestDemanderJoueur()
+ {
+ IPersistance persistance = new PersistanceStub();
+ Manageur manageur = new Manageur(persistance);
+
+ Joueur joueur = manageur.DemanderJoueur("Céleste");
+ Joueur joueur2 = manageur.DemanderJoueur("Toto");
+
+ Assert.Contains(joueur, manageur.Joueurs);
+ Assert.Contains(joueur2, manageur.Joueurs);
+ }
+ }
+}
diff --git a/Sources/UnitTesting/PartiePartieTermineeEventArgsUT.cs b/Sources/UnitTesting/PartiePartieTermineeEventArgsUT.cs
index 50821c9..262eed0 100644
--- a/Sources/UnitTesting/PartiePartieTermineeEventArgsUT.cs
+++ b/Sources/UnitTesting/PartiePartieTermineeEventArgsUT.cs
@@ -11,8 +11,10 @@ namespace UnitTesting
{
IReadOnlyList gagnants = new List(["joueur1", "joueur2"]);
IReadOnlyList perdants = new List(["joueur3"]);
+ int tour = 10;
- PartiePartieTermineeEventArgs evenement = new PartiePartieTermineeEventArgs(gagnants, perdants);
+ PartiePartieTermineeEventArgs evenement = new PartiePartieTermineeEventArgs(tour, gagnants, perdants);
+ Assert.Equal(tour, evenement.Tour);
Assert.Equal(gagnants, evenement.Gagnants);
Assert.Equal(perdants, evenement.Perdants);
}
diff --git a/Sources/UnitTesting/UnitTesting.csproj b/Sources/UnitTesting/UnitTesting.csproj
index 66853b1..3b3c15b 100644
--- a/Sources/UnitTesting/UnitTesting.csproj
+++ b/Sources/UnitTesting/UnitTesting.csproj
@@ -23,8 +23,8 @@
-
+
diff --git a/Sources/mastermind.sln b/Sources/mastermind.sln
index af9bf58..4ef8628 100644
--- a/Sources/mastermind.sln
+++ b/Sources/mastermind.sln
@@ -14,6 +14,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTesting", "UnitTesting\
{341FB405-085D-4C34-B395-64EF0F9B93E0} = {341FB405-085D-4C34-B395-64EF0F9B93E0}
EndProjectSection
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Persistance", "Persistance\Persistance.csproj", "{B9E8C10D-9E0E-42F1-8F2C-1E2200DD96FA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp2", "ConsoleApp2\ConsoleApp2.csproj", "{5F798F65-4226-49F9-8F01-B140507E9502}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -38,6 +42,14 @@ Global
{A2182054-C0D1-46D6-BD39-F3F7926CE2DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A2182054-C0D1-46D6-BD39-F3F7926CE2DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A2182054-C0D1-46D6-BD39-F3F7926CE2DD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B9E8C10D-9E0E-42F1-8F2C-1E2200DD96FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B9E8C10D-9E0E-42F1-8F2C-1E2200DD96FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B9E8C10D-9E0E-42F1-8F2C-1E2200DD96FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B9E8C10D-9E0E-42F1-8F2C-1E2200DD96FA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5F798F65-4226-49F9-8F01-B140507E9502}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5F798F65-4226-49F9-8F01-B140507E9502}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5F798F65-4226-49F9-8F01-B140507E9502}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5F798F65-4226-49F9-8F01-B140507E9502}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE