diff --git a/Sources/CoreLibrary/Core/Code.cs b/Sources/CoreLibrary/Core/Code.cs
index 68e0f41..3567998 100644
--- a/Sources/CoreLibrary/Core/Code.cs
+++ b/Sources/CoreLibrary/Core/Code.cs
@@ -96,7 +96,7 @@ namespace CoreLibrary.Core
/// Levée lorsque l'indice est supérieur à la taille maximale du code, inférieur à 0 ou qu'il n'y a pas de jeton à l'indice spécifié
public Jeton RecupererJeton(int indice)
{
- if (indice < 0 || indice >= NbJetonsMax)
+ if (indice < 0 || indice >= lesJetons.Count)
throw new IndiceCodeException(indice, lesJetons.Count - 1);
Jeton? jeton = lesJetons[indice];
diff --git a/Sources/MauiSpark/Convertisseurs/CouleurVersCouleurMAUI.cs b/Sources/MauiSpark/Convertisseurs/CouleurVersCouleurMAUI.cs
index 13b47b1..deaae35 100644
--- a/Sources/MauiSpark/Convertisseurs/CouleurVersCouleurMAUI.cs
+++ b/Sources/MauiSpark/Convertisseurs/CouleurVersCouleurMAUI.cs
@@ -13,7 +13,7 @@ namespace MauiSpark.Convertisseurs
public static Color Blanc { get; private set; } = Color.FromRgb(255, 255, 255);
- public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is not Couleur) return Noir;
@@ -36,7 +36,7 @@ namespace MauiSpark.Convertisseurs
}
}
- public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is not Color) return Couleur.NOIR;
diff --git a/Sources/MauiSpark/Convertisseurs/IndicateurVersCouleurMAUI.cs b/Sources/MauiSpark/Convertisseurs/IndicateurVersCouleurMAUI.cs
index 834e793..eb2e6f6 100644
--- a/Sources/MauiSpark/Convertisseurs/IndicateurVersCouleurMAUI.cs
+++ b/Sources/MauiSpark/Convertisseurs/IndicateurVersCouleurMAUI.cs
@@ -5,7 +5,7 @@ namespace MauiSpark.Convertisseurs
{
public class IndicateurVersCouleurMAUI : IValueConverter
{
- public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is not Indicateur) return "black";
@@ -20,7 +20,7 @@ namespace MauiSpark.Convertisseurs
}
}
- public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
diff --git a/Sources/MauiSpark/Convertisseurs/JetonVersTexte.cs b/Sources/MauiSpark/Convertisseurs/JetonVersTexte.cs
index 1bbf8b7..3af5960 100644
--- a/Sources/MauiSpark/Convertisseurs/JetonVersTexte.cs
+++ b/Sources/MauiSpark/Convertisseurs/JetonVersTexte.cs
@@ -10,14 +10,14 @@ namespace MauiSpark.Convertisseurs
{
public class JetonVersTexte : IValueConverter
{
- public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is not Jeton) return "";
return "O";
}
- public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
diff --git a/Sources/MauiSpark/Pages/Plateau.xaml.cs b/Sources/MauiSpark/Pages/Plateau.xaml.cs
index 8dcf8c6..bf253ae 100644
--- a/Sources/MauiSpark/Pages/Plateau.xaml.cs
+++ b/Sources/MauiSpark/Pages/Plateau.xaml.cs
@@ -4,6 +4,7 @@ using CoreLibrary.Events;
using CoreLibrary.Exceptions;
using CoreLibrary.Joueurs;
using MauiSpark.Convertisseurs;
+using System.Globalization;
namespace MauiSpark.Pages;
@@ -52,13 +53,13 @@ public partial class Plateau : ContentPage
private void CouleurPresee(Object sender, EventArgs e)
{
Label label = (Label)sender;
- Couleur couleur = (Couleur)new CouleurVersCouleurMAUI().ConvertBack(label.TextColor, null, null, null);
+ Couleur couleur = (Couleur)new CouleurVersCouleurMAUI().ConvertBack(label.TextColor, typeof(Couleur), null, CultureInfo.InvariantCulture);
try
{
code.AjouterJeton(new Jeton(couleur));
}
- catch (CodeCompletException ignored)
+ catch (CodeCompletException)
{
DisplayAlert("Attention", "La code est plein", "OK");
}
@@ -70,7 +71,7 @@ public partial class Plateau : ContentPage
{
code.SupprimerDernierJeton();
}
- catch(CodeVideException ignored)
+ catch(CodeVideException)
{
DisplayAlert("Attention", "La code est vide", "OK");
}
@@ -82,7 +83,7 @@ public partial class Plateau : ContentPage
{
joueur.Code(code);
}
- catch (CodeIncompletException ignored)
+ catch (CodeIncompletException)
{
DisplayAlert("Attention", "La code n'est pas complet", "OK");
}
diff --git a/Sources/UnitTesting/CodeUT.cs b/Sources/UnitTesting/CodeUT.cs
index d42d23f..2e65a53 100644
--- a/Sources/UnitTesting/CodeUT.cs
+++ b/Sources/UnitTesting/CodeUT.cs
@@ -11,7 +11,7 @@ namespace UnitTesting
{
Code code = new Code(4);
Assert.NotNull(code);
- Assert.Equal(4, code.Jetons().Count());
+ Assert.Empty(code.Jetons);
Assert.Equal(0, code.NbJetons);
}
@@ -29,7 +29,7 @@ namespace UnitTesting
Code code = new Code(jetons);
Assert.NotNull(code);
- Assert.Equal(3, code.Jetons().Count());
+ Assert.Equal(3, code.Jetons.Count());
Assert.Equal(3, code.NbJetons);
}
@@ -46,7 +46,7 @@ namespace UnitTesting
Code code = new Code(3);
code.AjouterJeton(jeton);
Assert.Equal(1, code.NbJetons);
- Assert.Equal(jeton, code.Jetons().ElementAt(0));
+ Assert.Equal(jeton, code.Jetons.ElementAt(0));
}
[Fact]
@@ -100,7 +100,7 @@ namespace UnitTesting
{
Jeton[] jetonsAttendus = [new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLEU)];
Code code = new Code(jetonsAttendus);
- IEnumerable lesJetons = code.Jetons();
+ IEnumerable lesJetons = code.Jetons;
Assert.Equal(jetonsAttendus.Length, lesJetons.Count());
@@ -133,7 +133,7 @@ namespace UnitTesting
{
Jeton[] jetons = [new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLEU)];
Code code = new Code(jetons);
- int tailleMaximale = code.TailleMaximale();
+ int tailleMaximale = code.NbJetonsMax;
Assert.Equal(jetons.Length, tailleMaximale);
}
diff --git a/Sources/UnitTesting/PlateauUT.cs b/Sources/UnitTesting/PlateauUT.cs
index 48189fa..5bfc9ec 100644
--- a/Sources/UnitTesting/PlateauUT.cs
+++ b/Sources/UnitTesting/PlateauUT.cs
@@ -141,7 +141,7 @@ namespace UnitTesting
Code? codeSecret = (Code?)fieldInfo.GetValue(plateau);
Assert.NotNull(codeSecret);
- Jeton[] jetons = codeSecret.Jetons().Where(jeton => jeton.HasValue).Select(jeton => jeton!.Value).ToArray();
+ Jeton[] jetons = codeSecret.Jetons.Where(jeton => jeton.HasValue).Select(jeton => jeton!.Value).ToArray();
int i = 0;
int j = 1;
@@ -156,7 +156,7 @@ namespace UnitTesting
plateau = new Plateau(2, 10);
codeSecret = (Code?)fieldInfo.GetValue(plateau);
Assert.NotNull(codeSecret);
- jetons = codeSecret.Jetons().Where(jeton => jeton.HasValue).Select(jeton => jeton!.Value).ToArray();
+ jetons = codeSecret.Jetons.Where(jeton => jeton.HasValue).Select(jeton => jeton!.Value).ToArray();
i = 0;
j = 1;
@@ -186,7 +186,7 @@ namespace UnitTesting
Code? codeSecret = (Code?)fieldInfo.GetValue(plateau);
Assert.NotNull(codeSecret);
- Jeton[] jetons = codeSecret.Jetons().Where(jeton => jeton.HasValue).Select(jeton => jeton!.Value).ToArray();
+ Jeton[] jetons = codeSecret.Jetons.Where(jeton => jeton.HasValue).Select(jeton => jeton!.Value).ToArray();
for (int i=0; i> grille = plateau.Grille();
Assert.Equal(4, grille.First().Count());
- Assert.Equal(4, grille.Last().Count());
- Assert.Equal(code1.Jetons(), grille.ElementAt(0));
- Assert.Equal(code2.Jetons(), grille.ElementAt(1));
+ Assert.Empty(grille.Last());
+ Assert.Equal(code1.Jetons, grille.ElementAt(0));
+ Assert.Equal(code2.Jetons, grille.ElementAt(1));
}
diff --git a/Sources/UnitTesting/ReglesClassiquesUT.cs b/Sources/UnitTesting/ReglesClassiquesUT.cs
index 030c8b4..8aa5746 100644
--- a/Sources/UnitTesting/ReglesClassiquesUT.cs
+++ b/Sources/UnitTesting/ReglesClassiquesUT.cs
@@ -15,242 +15,5 @@ namespace UnitTesting
{
Assert.Equal("Règles classiques", new ReglesClassiques().Nom);
}
-
- [Fact]
- public void TestNbJoueur()
- {
- ReglesClassiques regles = new ReglesClassiques();
- Assert.Equal(0, regles.NbJoueurs);
- regles.AjouterJoueur("Bonjour");
- Assert.Equal(1, regles.NbJoueurs);
- regles.AjouterJoueur("Bonsoir");
- Assert.Equal(2, regles.NbJoueurs);
- }
-
- [Fact]
- public void GenererCode()
- {
- ReglesClassiques regles = new ReglesClassiques();
- Assert.Equal(new Code(4).NbJetons, regles.GenererCode().NbJetons);
- Assert.Equal(4, regles.GenererCode().TailleMaximale());
- }
-
- [Fact]
- public void TestJoueurCourantPartieNonCommencee()
- {
- ReglesClassiques regles = new ReglesClassiques();
- Assert.Throws(() => regles.JoueurCourant());
- }
-
- [Fact]
- public void TestPasserLaMainPartieNonCommencee()
- {
- ReglesClassiques regles = new ReglesClassiques();
- Assert.Throws(() => regles.PasserLaMain());
- }
-
- [Fact]
- public void TestPasserLaMain()
- {
- ReglesClassiques regles = new ReglesClassiques();
-
- Type type = typeof(ReglesClassiques);
-
- FieldInfo? fieldInfo = type.GetField("joueurCourant", BindingFlags.NonPublic | BindingFlags.Instance);
- Assert.NotNull(fieldInfo);
-
-
- regles.AjouterJoueur("céleste");
- regles.AjouterJoueur("pauline");
-
- Assert.Throws(() => regles.PasserLaMain());
-
- int? joueurCourantPasDemarree = (int?)fieldInfo.GetValue(regles);
- Assert.Null(joueurCourantPasDemarree);
-
- regles.CommencerLaPartie();
-
- int? joueurCourantAvant = (int?) fieldInfo.GetValue(regles);
- Joueur courantAvant = regles.JoueurCourant().Item1;
- Assert.NotNull(joueurCourantAvant);
- Assert.Equal(0, joueurCourantAvant);
-
- regles.PasserLaMain();
-
- int? joueurCourantApres = (int?)fieldInfo.GetValue(regles);
- Joueur courantApres = regles.JoueurCourant().Item1;
- Assert.NotNull(joueurCourantApres);
- Assert.Equal(1, joueurCourantApres);
- Assert.NotEqual(joueurCourantAvant, joueurCourantApres);
- Assert.NotEqual(courantAvant, courantApres);
-
- regles.PasserLaMain();
-
- int? joueurCourantBoucle = (int?)fieldInfo.GetValue(regles);
- Joueur courantBoucle = regles.JoueurCourant().Item1;
- Assert.NotNull(joueurCourantBoucle);
- Assert.Equal(0, joueurCourantBoucle);
- Assert.NotEqual(joueurCourantApres, joueurCourantBoucle);
- Assert.Equal(joueurCourantAvant, joueurCourantBoucle);
- Assert.NotEqual(courantApres, courantBoucle);
- }
-
- [Fact]
- public void TestEstTermineeVictoire()
- {
- ReglesClassiques regles = new ReglesClassiques();
-
- regles.AjouterJoueur("joueur1");
- regles.AjouterJoueur("joueur2");
-
- Assert.False(regles.EstTerminee());
-
- Type type = typeof(ReglesClassiques);
- FieldInfo? fieldInfo = type.GetField("joueurCourant", BindingFlags.NonPublic | BindingFlags.Instance);
- Assert.NotNull(fieldInfo);
- fieldInfo.SetValue(regles, 1);
-
- Assert.False(regles.EstTerminee());
-
- fieldInfo.SetValue(regles, 0);
-
- regles.CommencerLaPartie();
-
- regles.PasserLaMain();
-
- Assert.False(regles.EstTerminee());
-
- regles.PasserLaMain();
-
- Plateau plateauj1 = regles.JoueurCourant().Item2;
- type = typeof(Plateau);
-
- fieldInfo = type.GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance);
- Assert.NotNull(fieldInfo);
-
- Code? codeSecret = (Code?)fieldInfo.GetValue(plateauj1);
- Assert.NotNull(codeSecret);
-
- regles.JoueurCourant().Item2.AjouterCode(codeSecret);
-
- bool estTerminee = regles.EstTerminee();
-
- Assert.True(estTerminee);
-
-
- }
-
- [Fact]
- public void TestGagants()
- {
- ReglesClassiques regles = new ReglesClassiques();
- Partie partie = new Partie(regles);
-
- regles.AjouterJoueur("joueur1");
- regles.AjouterJoueur("joueur2");
-
- regles.CommencerLaPartie();
-
- Plateau plateauj1 = regles.JoueurCourant().Item2;
-
- Type type = typeof(Plateau);
- FieldInfo? fieldInfo = type.GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance);
- Assert.NotNull(fieldInfo);
- Code? codeSecret = (Code?)fieldInfo.GetValue(plateauj1);
- Assert.NotNull(codeSecret);
-
- regles.JoueurCourant().Item2.AjouterCode(codeSecret);
- IEnumerable gagnants = regles.Gagnants();
- Assert.Single(gagnants);
- Assert.Contains(regles.JoueurCourant().Item1, gagnants);
- }
-
- [Fact]
- public void TestPerdants()
- {
- ReglesClassiques regles = new ReglesClassiques();
- Partie partie = new Partie(regles);
-
- regles.AjouterJoueur("joueur1");
- regles.AjouterJoueur("joueur2");
-
- regles.CommencerLaPartie();
-
- Plateau plateauj1 = regles.JoueurCourant().Item2;
-
- Type type = typeof(Plateau);
- FieldInfo? fieldInfo = type.GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance);
- Assert.NotNull(fieldInfo);
- Code? codeSecret = (Code?)fieldInfo.GetValue(plateauj1);
- Assert.NotNull(codeSecret);
-
- regles.JoueurCourant().Item2.AjouterCode(codeSecret);
-
- regles.PasserLaMain();
-
- IEnumerable perdants = regles.Perdants();
- Assert.Single(perdants);
- Assert.Contains(regles.JoueurCourant().Item1, perdants);
- }
-
-
- [Fact]
- public void EstTermineeMaxTour()
- {
- ReglesClassiques regles = new ReglesClassiques();
- regles.AjouterJoueur("1");
- regles.AjouterJoueur("2");
- regles.CommencerLaPartie();
-
- for (int i = 0; i < 24; ++i)
- {
- Plateau plateau = regles.JoueurCourant().Item2;
- Code code = new Code(4);
- code.AjouterJeton(new Jeton(Couleur.ROUGE));
- code.AjouterJeton(new Jeton(Couleur.ROUGE));
- code.AjouterJeton(new Jeton(Couleur.ROUGE));
- code.AjouterJeton(new Jeton(Couleur.ROUGE));
- plateau.AjouterCode(code);
-
- regles.PasserLaMain();
- }
-
- Assert.True(regles.EstTerminee());
- }
-
- [Fact]
- public void EstTermineeNon()
- {
- ReglesClassiques regles = new ReglesClassiques();
- regles.AjouterJoueur("1");
- regles.AjouterJoueur("2");
- regles.CommencerLaPartie();
-
- for (int i = 0; i < 12; ++i)
- regles.PasserLaMain();
-
- Assert.False(regles.EstTerminee());
- }
-
- [Fact]
- public void EstTermineeCodeTrouve()
- {
- ReglesClassiques regles = new ReglesClassiques();
- regles.AjouterJoueur("1");
- regles.AjouterJoueur("2");
- regles.CommencerLaPartie();
-
- Plateau plateauj1 = regles.JoueurCourant().Item2;
-
- Type type = typeof(Plateau);
- FieldInfo? fieldInfo = type.GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance);
- Assert.NotNull(fieldInfo);
- Code? codeSecret = (Code?)fieldInfo.GetValue(plateauj1);
- Assert.NotNull(codeSecret);
-
- regles.JoueurCourant().Item2.AjouterCode(codeSecret);
-
- Assert.True(regles.EstTerminee());
- }
}
}