From a91756c7e08d6f889e149dcd9821aad49c3172fc Mon Sep 17 00:00:00 2001 From: "camille.turpin-etienne" Date: Fri, 10 May 2024 17:11:45 +0200 Subject: [PATCH] Ajout de la doc pour la class code --- Sources/CoreLibrary/Code.cs | 61 +++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/Sources/CoreLibrary/Code.cs b/Sources/CoreLibrary/Code.cs index 54dbcd0..c6b61fd 100644 --- a/Sources/CoreLibrary/Code.cs +++ b/Sources/CoreLibrary/Code.cs @@ -1,13 +1,28 @@ using CoreLibrary.Exceptions; + + + + namespace CoreLibrary { + /// + /// Représente un code composé de jetons. + /// public class Code { private readonly Jeton?[] lesJetons; + /// + /// Obtenir le nombre de jetons dans le code. + /// public int NbJetons { get; private set; } = 0; + /// + /// Initialise une nouvelle instance de la classe avec la longueur de code spécifiée. + /// + /// La longueur du code. + /// Levée lorsque la longueur du code spécifiée est inférieure ou égale à zéro. public Code(int tailleCode) { if(tailleCode <= 0) @@ -18,6 +33,11 @@ namespace CoreLibrary lesJetons = new Jeton?[tailleCode]; } + /// + /// Initialise une nouvelle instance de la class avec les jetons spécifiés. + /// + /// Les jetons pour initaliser le code. + /// Levée lorsque la collection de jetons spécifiée est vide. public Code(IEnumerable jetons) { if (jetons.Count() == 0) @@ -32,6 +52,11 @@ namespace CoreLibrary } } + /// + /// Ajoute un jeton au code. + /// + /// Le jeton à ajouter + /// Levée lorsque le code est plein. public void AjouterJeton(Jeton jeton) { if (NbJetons == TailleMaximale()) @@ -42,6 +67,10 @@ namespace CoreLibrary lesJetons[NbJetons++] = jeton; } + /// + /// Supprime le dernier jeton ajouté au code. + /// + /// Levée lorsque le code est vide. public void SupprimerDernierJeton() { if(NbJetons == 0) @@ -52,6 +81,12 @@ namespace CoreLibrary lesJetons[--NbJetons] = null; } + /// + /// Récupère le jeton à l'indice spécifié dans le code. + /// + /// L'indice du jeton a récupéré. + /// Le jeton situé à l'indice spécifié. + /// 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 > TailleMaximale()) @@ -65,33 +100,57 @@ namespace CoreLibrary return jeton.Value; } + /// + /// Récupère une énumération des jetons dans le code. + /// + /// Enumération des jetons du code public IEnumerable Jetons() { return lesJetons; } + + + /// + /// Vérifie si le code est complet. + /// + /// True si le code est complet, sinon False. public bool EstComplet() { return NbJetons == lesJetons.Length; } + /// + /// Recupère la taille maximal du code. + /// + /// Taille maximal du code. public int TailleMaximale() { return lesJetons.Length; } + + /// + /// Compare le code avec un autre code et génère des indcateurs de correspondance. + /// + /// Le code à comparer avec le code actuel + /// Enumération d'indicateurs de correspondance entre les deux codes. public IEnumerable Comparer(Code autreCode) { // Mon code est le code correct, l'autre code est celui qui teste Indicateur[] indicateurs = []; + /// Vérifie si les deux codes sont complets if (!EstComplet() || !autreCode.EstComplet()) return indicateurs; + /// Convertie les jetons des codes en tableaux. Jeton?[] mesJetons = Jetons().ToArray(); Jeton?[] sesJetons = autreCode.Jetons().ToArray(); + /// Compare les jetons pour détecter les ceux à la bonnes places + /// S'ils sont à la bonne place alors ils sont enlever du tableau et un indicateur BONNEPLACE est ajouter au tableau des indicateurs. for (int i = 0; i < mesJetons.Length; ++i) { Jeton? monJeton = mesJetons[i]; @@ -106,6 +165,8 @@ namespace CoreLibrary } + /// Compare les jetons pour détecter ceux qui ont la bonne couleur. + /// S'ils ont la bonne couleur alors ils sont enlever du tableau et un indicateur BONNECOULEUR est ajouter au tableau des indicateurs. for (int i = 0; i < sesJetons.Length; ++i) { Jeton? sonJeton = sesJetons[i];