correction des code smells
continuous-integration/drone/push Build is passing Details

master
Céleste BARBOSA 12 months ago
parent 21a492162b
commit af9acb9ced

@ -6,7 +6,7 @@ namespace ConsoleApp
/// <summary> /// <summary>
/// Fournit des gestionnaires d'événements les événements liés au déroulement de la partie. /// Fournit des gestionnaires d'événements les événements liés au déroulement de la partie.
/// </summary> /// </summary>
public class Evenements public static class Evenements
{ {
/// <summary> /// <summary>
/// Gestionnaire d'événement pour l'ajout d'un joueur. /// Gestionnaire d'événement pour l'ajout d'un joueur.

@ -2,7 +2,7 @@
namespace ConsoleApp namespace ConsoleApp
{ {
public class Utils public static class Utils
{ {
private readonly static Dictionary<Couleur, ConsoleColor> couleursTerminal = new Dictionary<Couleur, ConsoleColor>() private readonly static Dictionary<Couleur, ConsoleColor> couleursTerminal = new Dictionary<Couleur, ConsoleColor>()
{ {
@ -22,25 +22,24 @@ namespace ConsoleApp
public static void DessinerTitre() public static void DessinerTitre()
{ {
Console.WriteLine(""" Console.WriteLine(@"
__ __ _ _ _ __ __ _ _ _
| \/ | __ _ ___| |_ ___ _ _ _ __ (_) _ _ __| | | \/ | __ _ ___| |_ ___ _ _ _ __ (_) _ _ __| |
| |\/| |/ _` |(_-<| _|/ -_)| '_|| ' \ | || ' \ / _` | | |\/| |/ _` |(_-<| _|/ -_)| '_|| ' \ | || ' \ / _` |
|_| |_|\__,_|/__/ \__|\___||_| |_|_|_||_||_||_|\__,_| |_| |_|\__,_|/__/ \__|\___||_| |_|_|_||_||_||_|\__,_|
"""); ");
DessinerSeparateur(); DessinerSeparateur();
} }
public static void DessinerSeparateur() public static void DessinerSeparateur()
{ {
Console.WriteLine(""" Console.WriteLine(@"
"""); ");
} }
public static void DessinerPion(Enum pion) public static void DessinerPion(Enum pion)
@ -62,8 +61,8 @@ namespace ConsoleApp
public static void DessinerPlateau(IEnumerable<IEnumerable<Jeton?>> grille, IEnumerable<IEnumerable<Indicateur>> indicateurs) public static void DessinerPlateau(IEnumerable<IEnumerable<Jeton?>> grille, IEnumerable<IEnumerable<Indicateur>> indicateurs)
{ {
IEnumerable<Jeton?>[] grilleTableau = (IEnumerable<Jeton?>[])grille.ToArray(); IEnumerable<Jeton?>[] grilleTableau = grille.ToArray();
IEnumerable<Indicateur>[] indicateursTableau = (IEnumerable<Indicateur>[])indicateurs.ToArray(); IEnumerable<Indicateur>[] indicateursTableau = indicateurs.ToArray();
Console.WriteLine(" Codes Indicateurs "); Console.WriteLine(" Codes Indicateurs ");
Console.WriteLine("──────────────── ────────────────"); Console.WriteLine("──────────────── ────────────────");

@ -20,7 +20,7 @@ namespace CoreLibrary
public Code(IEnumerable<Jeton> jetons) public Code(IEnumerable<Jeton> jetons)
{ {
if (jetons.Count() == 0) if (jetons.Any())
{ {
throw new TailleCodeException(jetons.Count()); throw new TailleCodeException(jetons.Count());
} }

@ -3,13 +3,21 @@
/// <summary> /// <summary>
/// Exception levée lorsqu'un jeton est ajouté à un code déjà complet. /// Exception levée lorsqu'un jeton est ajouté à un code déjà complet.
/// </summary> /// </summary>
[Serializable]
public class CodeCompletException : Exception public class CodeCompletException : Exception
{ {
/// <summary> /// <summary>
/// Initialise une nouvelle instance de la classe <see cref="CodeCompletException"/>. /// Initialise une nouvelle instance de la classe <see cref="CodeCompletException"/>.
/// </summary> /// </summary>
public CodeCompletException() : private const string messageDefaut = "Le code dans lequel vous essayez d'ajouter un jeton est déjà complet.";
base("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)
{}
} }
} }

@ -3,13 +3,21 @@
/// <summary> /// <summary>
/// Exception levée lorsqu'un code incomplet est ajouté à la grille. /// Exception levée lorsqu'un code incomplet est ajouté à la grille.
/// </summary> /// </summary>
[Serializable]
public class CodeIncompletException : Exception public class CodeIncompletException : Exception
{ {
/// <summary> /// <summary>
/// Initialise une nouvelle instance de la classe <see cref="CodeIncompletException"/>. /// Initialise une nouvelle instance de la classe <see cref="CodeIncompletException"/>.
/// </summary> /// </summary>
public CodeIncompletException() : private const string messageDefaut = "Le code que vous essayez d'ajouter dans la grille n'est pas complet.";
base("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)
{ } { }
} }
} }

@ -3,6 +3,7 @@
/// <summary> /// <summary>
/// Exception levée lorsqu'un code avec une taille invalide est ajouté à la grille. /// Exception levée lorsqu'un code avec une taille invalide est ajouté à la grille.
/// </summary> /// </summary>
[Serializable]
public class CodeInvalideException : Exception public class CodeInvalideException : Exception
{ {
/// <summary> /// <summary>
@ -10,8 +11,19 @@
/// </summary> /// </summary>
/// <param name="tailleCodeAjoute">La taille du code que vous essayez d'ajouter.</param> /// <param name="tailleCodeAjoute">La taille du code que vous essayez d'ajouter.</param>
/// <param name="tailleCodePlateau">La taille du code que le plateau attend.</param> /// <param name="tailleCodePlateau">La taille du code que le plateau attend.</param>
private const string messageDefaut = "Le code que vous essayez d'ajouter est invalide.";
public CodeInvalideException() : base(messageDefaut)
{ }
public CodeInvalideException(int tailleCodeAjoute, int tailleCodePlateau) : 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}.") 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)
{ }
} }
} }

@ -3,13 +3,21 @@
/// <summary> /// <summary>
/// Exception levée lorsqu'un jeton est supprimé d'un code qui est déjà vide. /// Exception levée lorsqu'un jeton est supprimé d'un code qui est déjà vide.
/// </summary> /// </summary>
[Serializable]
public class CodeVideException : Exception public class CodeVideException : Exception
{ {
/// <summary> /// <summary>
/// Initialise une nouvelle instance de la classe <see cref="CodeVideException"/>. /// Initialise une nouvelle instance de la classe <see cref="CodeVideException"/>.
/// </summary> /// </summary>
public CodeVideException() : private const string messageDefaut = "Le code dans lequel vous essayez de supprimer un jeton est déjà vide.";
base("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)
{ } { }
} }
} }

@ -3,13 +3,21 @@
/// <summary> /// <summary>
/// Exception levée lorsqu'un code est ajouté à une grille qui est déjà complète. /// Exception levée lorsqu'un code est ajouté à une grille qui est déjà complète.
/// </summary> /// </summary>
[Serializable]
public class GrilleCompleteException : Exception public class GrilleCompleteException : Exception
{ {
/// <summary> /// <summary>
/// Initialise une nouvelle instance de la classe <see cref="GrilleCompleteException"/>. /// Initialise une nouvelle instance de la classe <see cref="GrilleCompleteException"/>.
/// </summary> /// </summary>
public GrilleCompleteException() : private const string messageDefaut = "La grille dans laquelle vous essayez d'ajouter un code est déjà complète.";
base("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)
{ } { }
} }
} }

@ -3,6 +3,7 @@
/// <summary> /// <summary>
/// Exception levée lorsqu'un indice de jeton est invalide. /// Exception levée lorsqu'un indice de jeton est invalide.
/// </summary> /// </summary>
[Serializable]
public class IndiceCodeException : Exception public class IndiceCodeException : Exception
{ {
/// <summary> /// <summary>
@ -10,8 +11,19 @@
/// </summary> /// </summary>
/// <param name="indice">L'indice incorrect qui a été spécifié.</param> /// <param name="indice">L'indice incorrect qui a été spécifié.</param>
/// <param name="indiceMax">L'indice maximum permis.</param> /// <param name="indiceMax">L'indice maximum permis.</param>
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) : 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}.") 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)
{ }
} }
} }

@ -3,13 +3,21 @@
/// <summary> /// <summary>
/// Exception levée lorsqu'une opération est tentée alors que la partie n'a pas encore commencé. /// Exception levée lorsqu'une opération est tentée alors que la partie n'a pas encore commencé.
/// </summary> /// </summary>
[Serializable]
public class PartieNonCommenceeException : Exception public class PartieNonCommenceeException : Exception
{ {
/// <summary> /// <summary>
/// Initialise une nouvelle instance de la classe <see cref="PartieNonCommenceeException"/>. /// Initialise une nouvelle instance de la classe <see cref="PartieNonCommenceeException"/>.
/// </summary> /// </summary>
public PartieNonCommenceeException() : private const string messageDefaut = "La partie n'a pas encore commencée.";
base("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)
{ } { }
} }
} }

@ -3,14 +3,26 @@
/// <summary> /// <summary>
/// Exception levée lorsqu'une taille de code invalide est spécifiée. /// Exception levée lorsqu'une taille de code invalide est spécifiée.
/// </summary> /// </summary>
[Serializable]
public class TailleCodeException : Exception public class TailleCodeException : Exception
{ {
/// <summary> /// <summary>
/// Initialise une nouvelle instance de la classe <see cref="TailleCodeException"/>. /// Initialise une nouvelle instance de la classe <see cref="TailleCodeException"/>.
/// </summary> /// </summary>
/// <param name="taille">La taille du code spécifiée.</param> /// <param name="taille">La taille du code spécifiée.</param>
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}.") 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)
{ }
} }
} }

@ -3,14 +3,26 @@
/// <summary> /// <summary>
/// Exception levée lorsqu'une taille de grille invalide est spécifiée. /// Exception levée lorsqu'une taille de grille invalide est spécifiée.
/// </summary> /// </summary>
[Serializable]
public class TailleGrilleException : Exception public class TailleGrilleException : Exception
{ {
/// <summary> /// <summary>
/// Initialise une nouvelle instance de la classe <see cref="TailleGrilleException"/>. /// Initialise une nouvelle instance de la classe <see cref="TailleGrilleException"/>.
/// </summary> /// </summary>
/// <param name="taille">La taille de grille spécifiée.</param> /// <param name="taille">La taille de grille spécifiée.</param>
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}.") 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)
{ }
} }
} }

@ -7,8 +7,8 @@ namespace CoreLibrary
{ {
private readonly IRegles regles; private readonly IRegles regles;
public delegate string? StringEventHandler<TEventArgs>(Object? sender, TEventArgs e); public delegate string? StringEventHandler<in TEventArgs>(Object? sender, TEventArgs e);
public delegate Jeton? JetonEventHandler<TEventArgs>(Object? sender, TEventArgs e); public delegate Jeton? JetonEventHandler<in TEventArgs>(Object? sender, TEventArgs e);
public event StringEventHandler<DemanderJoueurEventArgs>? DemanderJoueur; public event StringEventHandler<DemanderJoueurEventArgs>? DemanderJoueur;
public event JetonEventHandler<DemanderJetonEventArgs>? DemanderJeton; public event JetonEventHandler<DemanderJetonEventArgs>? DemanderJeton;
@ -71,12 +71,8 @@ namespace CoreLibrary
if(DemanderJeton != null) if(DemanderJeton != null)
{ {
// Si quelqu'un écoute l'événement mais ne renvoie rien, alors on supprime le dernier jeton // Si quelqu'un écoute l'événement mais ne renvoie rien, alors on supprime le dernier jeton
try code.SupprimerDernierJeton();
{ QuandSupprimerDernierJeton();
code.SupprimerDernierJeton();
QuandSupprimerDernierJeton();
}
catch(CodeVideException){}
} }
else else
{ {

@ -121,14 +121,14 @@ namespace CoreLibrary
throw new CodeIncompletException(); throw new CodeIncompletException();
} }
IEnumerable<Indicateur> indicateurs = codeSecret.Comparer(code); IEnumerable<Indicateur> indicateursCode = codeSecret.Comparer(code);
if (indicateurs.Count() != tailleCode) if (indicateursCode.Count() != tailleCode)
{ {
return false; return false;
} }
foreach (Indicateur indicateur in indicateurs) foreach (Indicateur indicateur in indicateursCode)
{ {
if (indicateur != Indicateur.BONNEPLACE) if (indicateur != Indicateur.BONNEPLACE)
{ {

Loading…
Cancel
Save