diff --git a/Sources/ConsoleApp/Evenements.cs b/Sources/ConsoleApp/Evenements.cs
index 14068e9..bd611d2 100644
--- a/Sources/ConsoleApp/Evenements.cs
+++ b/Sources/ConsoleApp/Evenements.cs
@@ -6,7 +6,7 @@ namespace ConsoleApp
///
/// Fournit des gestionnaires d'événements les événements liés au déroulement de la partie.
///
- public class Evenements
+ public static class Evenements
{
///
/// Gestionnaire d'événement pour l'ajout d'un joueur.
diff --git a/Sources/ConsoleApp/Utils.cs b/Sources/ConsoleApp/Utils.cs
index 51cbe16..47787e1 100644
--- a/Sources/ConsoleApp/Utils.cs
+++ b/Sources/ConsoleApp/Utils.cs
@@ -2,7 +2,7 @@
namespace ConsoleApp
{
- public class Utils
+ public static class Utils
{
private readonly static Dictionary couleursTerminal = new Dictionary()
{
@@ -22,25 +22,24 @@ namespace ConsoleApp
public static void DessinerTitre()
{
- Console.WriteLine("""
- __ __ _ _ _
- | \/ | __ _ ___| |_ ___ _ _ _ __ (_) _ _ __| |
- | |\/| |/ _` |(_-<| _|/ -_)| '_|| ' \ | || ' \ / _` |
- |_| |_|\__,_|/__/ \__|\___||_| |_|_|_||_||_||_|\__,_|
- """);
-
+ Console.WriteLine(@"
+ __ __ _ _ _
+| \/ | __ _ ___| |_ ___ _ _ _ __ (_) _ _ __| |
+| |\/| |/ _` |(_-<| _|/ -_)| '_|| ' \ | || ' \ / _` |
+|_| |_|\__,_|/__/ \__|\___||_| |_|_|_||_||_||_|\__,_|
+");
DessinerSeparateur();
}
public static void DessinerSeparateur()
{
- Console.WriteLine("""
+ Console.WriteLine(@"
- ───────────────────────────────────────────────────────
+───────────────────────────────────────────────────────
- """);
+ ");
}
public static void DessinerPion(Enum pion)
@@ -62,8 +61,8 @@ namespace ConsoleApp
public static void DessinerPlateau(IEnumerable> grille, IEnumerable> indicateurs)
{
- IEnumerable[] grilleTableau = (IEnumerable[])grille.ToArray();
- IEnumerable[] indicateursTableau = (IEnumerable[])indicateurs.ToArray();
+ IEnumerable[] grilleTableau = grille.ToArray();
+ IEnumerable[] indicateursTableau = indicateurs.ToArray();
Console.WriteLine(" Codes Indicateurs ");
Console.WriteLine("──────────────── ────────────────");
diff --git a/Sources/CoreLibrary/Code.cs b/Sources/CoreLibrary/Code.cs
index 0e1756e..81b3b61 100644
--- a/Sources/CoreLibrary/Code.cs
+++ b/Sources/CoreLibrary/Code.cs
@@ -20,7 +20,7 @@ namespace CoreLibrary
public Code(IEnumerable jetons)
{
- if (jetons.Count() == 0)
+ if (jetons.Any())
{
throw new TailleCodeException(jetons.Count());
}
diff --git a/Sources/CoreLibrary/Exceptions/CodeCompletException.cs b/Sources/CoreLibrary/Exceptions/CodeCompletException.cs
index a9fe1b5..3f8abc1 100644
--- a/Sources/CoreLibrary/Exceptions/CodeCompletException.cs
+++ b/Sources/CoreLibrary/Exceptions/CodeCompletException.cs
@@ -3,13 +3,21 @@
///
/// Exception levée lorsqu'un jeton est ajouté à un code déjà complet.
///
+ [Serializable]
public class CodeCompletException : Exception
{
///
/// Initialise une nouvelle instance de la classe .
///
- public CodeCompletException() :
- base("Le code dans lequel vous essayez d'ajouter un jeton est déjà complet.")
- { }
+ private const string messageDefaut = "Le code dans lequel vous essayez d'ajouter un jeton est déjà complet.";
+
+ public CodeCompletException() : base(messageDefaut)
+ {}
+
+ public CodeCompletException(string message) : base(message)
+ {}
+
+ public CodeCompletException(string message, Exception exception) : base(message, exception)
+ {}
}
}
diff --git a/Sources/CoreLibrary/Exceptions/CodeIncompletException.cs b/Sources/CoreLibrary/Exceptions/CodeIncompletException.cs
index 3d7642c..59a7aaf 100644
--- a/Sources/CoreLibrary/Exceptions/CodeIncompletException.cs
+++ b/Sources/CoreLibrary/Exceptions/CodeIncompletException.cs
@@ -3,13 +3,21 @@
///
/// Exception levée lorsqu'un code incomplet est ajouté à la grille.
///
+ [Serializable]
public class CodeIncompletException : Exception
{
///
/// Initialise une nouvelle instance de la classe .
///
- public CodeIncompletException() :
- base("Le code que vous essayez d'ajouter dans la grille n'est pas complet.")
+ private const string messageDefaut = "Le code que vous essayez d'ajouter dans la grille n'est pas complet.";
+
+ public CodeIncompletException() : base(messageDefaut)
+ { }
+
+ public CodeIncompletException(string message) : base(message)
+ { }
+
+ public CodeIncompletException(string message, Exception exception) : base(message, exception)
{ }
}
}
diff --git a/Sources/CoreLibrary/Exceptions/CodeInvalideException.cs b/Sources/CoreLibrary/Exceptions/CodeInvalideException.cs
index 73c629d..e5fdfd9 100644
--- a/Sources/CoreLibrary/Exceptions/CodeInvalideException.cs
+++ b/Sources/CoreLibrary/Exceptions/CodeInvalideException.cs
@@ -3,6 +3,7 @@
///
/// Exception levée lorsqu'un code avec une taille invalide est ajouté à la grille.
///
+ [Serializable]
public class CodeInvalideException : Exception
{
///
@@ -10,8 +11,19 @@
///
/// La taille du code que vous essayez d'ajouter.
/// La taille du code que le plateau attend.
+ private const string messageDefaut = "Le code que vous essayez d'ajouter est invalide.";
+
+ public CodeInvalideException() : base(messageDefaut)
+ { }
+
public CodeInvalideException(int tailleCodeAjoute, int tailleCodePlateau) :
base($"Le code que vous essayez d'ajouter est un code de taille {tailleCodeAjoute}, or le plateau attend un code de {tailleCodePlateau}.")
{ }
+
+ public CodeInvalideException(string message) : base(message)
+ { }
+
+ public CodeInvalideException(string message, Exception exception) : base(message, exception)
+ { }
}
}
diff --git a/Sources/CoreLibrary/Exceptions/CodeVideException.cs b/Sources/CoreLibrary/Exceptions/CodeVideException.cs
index b05da88..c8d21f9 100644
--- a/Sources/CoreLibrary/Exceptions/CodeVideException.cs
+++ b/Sources/CoreLibrary/Exceptions/CodeVideException.cs
@@ -3,13 +3,21 @@
///
/// Exception levée lorsqu'un jeton est supprimé d'un code qui est déjà vide.
///
+ [Serializable]
public class CodeVideException : Exception
{
///
/// Initialise une nouvelle instance de la classe .
///
- public CodeVideException() :
- base("Le code dans lequel vous essayez de supprimer un jeton est déjà vide.")
+ private const string messageDefaut = "Le code dans lequel vous essayez de supprimer un jeton est déjà vide.";
+
+ public CodeVideException() : base(messageDefaut)
+ { }
+
+ public CodeVideException(string message) : base(message)
+ { }
+
+ public CodeVideException(string message, Exception exception) : base(message, exception)
{ }
}
}
diff --git a/Sources/CoreLibrary/Exceptions/GrilleCompleteException.cs b/Sources/CoreLibrary/Exceptions/GrilleCompleteException.cs
index b02a9c0..f74bd4f 100644
--- a/Sources/CoreLibrary/Exceptions/GrilleCompleteException.cs
+++ b/Sources/CoreLibrary/Exceptions/GrilleCompleteException.cs
@@ -3,13 +3,21 @@
///
/// Exception levée lorsqu'un code est ajouté à une grille qui est déjà complète.
///
+ [Serializable]
public class GrilleCompleteException : Exception
{
///
/// Initialise une nouvelle instance de la classe .
///
- public GrilleCompleteException() :
- base("La grille dans laquelle vous essayez d'ajouter un code est déjà complète.")
+ private const string messageDefaut = "La grille dans laquelle vous essayez d'ajouter un code est déjà complète.";
+
+ public GrilleCompleteException() : base(messageDefaut)
+ { }
+
+ public GrilleCompleteException(string message) : base(message)
+ { }
+
+ public GrilleCompleteException(string message, Exception exception) : base(message, exception)
{ }
}
}
diff --git a/Sources/CoreLibrary/Exceptions/IndiceCodeException.cs b/Sources/CoreLibrary/Exceptions/IndiceCodeException.cs
index f1b246a..fd0e13e 100644
--- a/Sources/CoreLibrary/Exceptions/IndiceCodeException.cs
+++ b/Sources/CoreLibrary/Exceptions/IndiceCodeException.cs
@@ -3,6 +3,7 @@
///
/// Exception levée lorsqu'un indice de jeton est invalide.
///
+ [Serializable]
public class IndiceCodeException : Exception
{
///
@@ -10,8 +11,19 @@
///
/// L'indice incorrect qui a été spécifié.
/// L'indice maximum permis.
+ private const string messageDefaut = "L'indice du jeton que vous essayez de récupérer est hors de la plage valide.";
+
+ public IndiceCodeException() : base(messageDefaut)
+ { }
+
public IndiceCodeException(int indice, int indiceMax) :
base($"Vous avez essayé de récupérer le jeton à la place {indice}, mais son indice doit être compris entre 0 et {indiceMax}.")
{ }
+
+ public IndiceCodeException(string message) : base(message)
+ { }
+
+ public IndiceCodeException(string message, Exception exception) : base(message, exception)
+ { }
}
}
diff --git a/Sources/CoreLibrary/Exceptions/PartieNonCommenceeException.cs b/Sources/CoreLibrary/Exceptions/PartieNonCommenceeException.cs
index b4768f7..a2070ed 100644
--- a/Sources/CoreLibrary/Exceptions/PartieNonCommenceeException.cs
+++ b/Sources/CoreLibrary/Exceptions/PartieNonCommenceeException.cs
@@ -3,13 +3,21 @@
///
/// Exception levée lorsqu'une opération est tentée alors que la partie n'a pas encore commencé.
///
+ [Serializable]
public class PartieNonCommenceeException : Exception
{
///
/// Initialise une nouvelle instance de la classe .
///
- public PartieNonCommenceeException() :
- base("La partie n'a pas encore commencée.")
+ private const string messageDefaut = "La partie n'a pas encore commencée.";
+
+ public PartieNonCommenceeException() : base(messageDefaut)
+ { }
+
+ public PartieNonCommenceeException(string message) : base(message)
+ { }
+
+ public PartieNonCommenceeException(string message, Exception exception) : base(message, exception)
{ }
}
}
diff --git a/Sources/CoreLibrary/Exceptions/TailleCodeException.cs b/Sources/CoreLibrary/Exceptions/TailleCodeException.cs
index 5563cdd..9757839 100644
--- a/Sources/CoreLibrary/Exceptions/TailleCodeException.cs
+++ b/Sources/CoreLibrary/Exceptions/TailleCodeException.cs
@@ -3,14 +3,26 @@
///
/// Exception levée lorsqu'une taille de code invalide est spécifiée.
///
+ [Serializable]
public class TailleCodeException : Exception
{
///
/// Initialise une nouvelle instance de la classe .
///
/// La taille du code spécifiée.
- public TailleCodeException(int taille) :
+ private const string messageDefaut = "Un code doit avoir une taille positive non nulle.";
+
+ public TailleCodeException() : base(messageDefaut)
+ { }
+
+ public TailleCodeException(int taille) :
base($"Un code doit avoir une taille positive non nulle, or il a reçu {taille}.")
{ }
+
+ public TailleCodeException(string message) : base(message)
+ { }
+
+ public TailleCodeException(string message, Exception exception) : base(message, exception)
+ { }
}
}
diff --git a/Sources/CoreLibrary/Exceptions/TailleGrilleException.cs b/Sources/CoreLibrary/Exceptions/TailleGrilleException.cs
index 332b319..926d9d1 100644
--- a/Sources/CoreLibrary/Exceptions/TailleGrilleException.cs
+++ b/Sources/CoreLibrary/Exceptions/TailleGrilleException.cs
@@ -3,14 +3,26 @@
///
/// Exception levée lorsqu'une taille de grille invalide est spécifiée.
///
+ [Serializable]
public class TailleGrilleException : Exception
{
///
/// Initialise une nouvelle instance de la classe .
///
/// La taille de grille spécifiée.
- public TailleGrilleException(int taille) :
+ private const string messageDefaut = "Une grille doit avoir une taille positive non nulle.";
+
+ public TailleGrilleException() : base(messageDefaut)
+ { }
+
+ public TailleGrilleException(int taille) :
base($"Une grille doit avoir une taille positive non nulle, or elle a reçu {taille}.")
{ }
+
+ public TailleGrilleException(string message) : base(message)
+ { }
+
+ public TailleGrilleException(string message, Exception exception) : base(message, exception)
+ { }
}
}
diff --git a/Sources/CoreLibrary/Partie.cs b/Sources/CoreLibrary/Partie.cs
index d59ba5e..a6488a6 100644
--- a/Sources/CoreLibrary/Partie.cs
+++ b/Sources/CoreLibrary/Partie.cs
@@ -7,8 +7,8 @@ namespace CoreLibrary
{
private readonly IRegles regles;
- public delegate string? StringEventHandler(Object? sender, TEventArgs e);
- public delegate Jeton? JetonEventHandler(Object? sender, TEventArgs e);
+ public delegate string? StringEventHandler(Object? sender, TEventArgs e);
+ public delegate Jeton? JetonEventHandler(Object? sender, TEventArgs e);
public event StringEventHandler? DemanderJoueur;
public event JetonEventHandler? DemanderJeton;
@@ -71,12 +71,8 @@ namespace CoreLibrary
if(DemanderJeton != null)
{
// Si quelqu'un écoute l'événement mais ne renvoie rien, alors on supprime le dernier jeton
- try
- {
- code.SupprimerDernierJeton();
- QuandSupprimerDernierJeton();
- }
- catch(CodeVideException){}
+ code.SupprimerDernierJeton();
+ QuandSupprimerDernierJeton();
}
else
{
diff --git a/Sources/CoreLibrary/Plateau.cs b/Sources/CoreLibrary/Plateau.cs
index 2081cf0..70ada70 100644
--- a/Sources/CoreLibrary/Plateau.cs
+++ b/Sources/CoreLibrary/Plateau.cs
@@ -121,14 +121,14 @@ namespace CoreLibrary
throw new CodeIncompletException();
}
- IEnumerable indicateurs = codeSecret.Comparer(code);
+ IEnumerable indicateursCode = codeSecret.Comparer(code);
- if (indicateurs.Count() != tailleCode)
+ if (indicateursCode.Count() != tailleCode)
{
return false;
}
- foreach (Indicateur indicateur in indicateurs)
+ foreach (Indicateur indicateur in indicateursCode)
{
if (indicateur != Indicateur.BONNEPLACE)
{