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) {