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];