diff --git a/Sources/CoreLibrary/Core/Code.cs b/Sources/CoreLibrary/Core/Code.cs
index 38e98b1..6971b89 100644
--- a/Sources/CoreLibrary/Core/Code.cs
+++ b/Sources/CoreLibrary/Core/Code.cs
@@ -4,17 +4,44 @@ using System.Runtime.Serialization;
namespace CoreLibrary.Core
{
+ ///
+ /// Classe qui représente un code composé de jetons.
+ ///
[DataContract]
public class Code
{
+ ///
+ /// Collection observable de jetons.
+ ///
[DataMember]
public ObservableCollection Jetons { get; private init; } = new ObservableCollection();
+
+ ///
+ /// Obtient le nombre actuel de jetons dans le code.
+ ///
public int Taille => Jetons.Count;
+
+ ///
+ /// Taille maximale de jetons autorisée pour le code.
+ ///
[DataMember]
public int TailleMax { get; private init; }
+
+ ///
+ /// Indique si le code est complet.
+ ///
public bool Complet => Taille == TailleMax;
+
+ ///
+ /// Indique si le code est vide.
+ ///
public bool Vide => Taille == 0;
+ ///
+ /// Constructeur de code avec une taille maximale spécifiée.
+ ///
+ /// La taille maximale de jetons autorisée pour le code.
+ /// Exception lancée si la taille spécifiée est négative ou nulle.
public Code(int taille)
{
if (taille < 0)
@@ -23,6 +50,11 @@ namespace CoreLibrary.Core
TailleMax = taille;
}
+ ///
+ /// Ajoute un jeton au code.
+ ///
+ /// Le jeton à ajouter.
+ /// Lancée si le code est déjà complet.
public void AjouterJeton(Jeton jeton)
{
if (Complet)
@@ -31,6 +63,12 @@ namespace CoreLibrary.Core
Jetons.Add(jeton);
}
+ ///
+ /// Récupère le jeton à l'indice spécifié.
+ ///
+ /// L'indice du jeton à récupérer.
+ /// Renvoie le jeton à l'indice spécifié.
+ /// Lancée si l'indice est en dehors des limites de la collection de jetons.
public Jeton RecupererJeton(int indice)
{
if (indice < 0 || indice >= Taille)
@@ -39,6 +77,10 @@ namespace CoreLibrary.Core
return Jetons.ElementAt(indice);
}
+ ///
+ /// Supprime le dernier jeton du code.
+ ///
+ /// Lancée si le code est vide.
public void SupprimerDernierJeton()
{
if (Vide)
@@ -47,6 +89,13 @@ namespace CoreLibrary.Core
Jetons.RemoveAt(Taille - 1);
}
+ ///
+ /// Compare le code avec le code secret et retourne une liste d'indicateurs.
+ ///
+ /// Le code à comparer.
+ /// Renvoie une liste d'indicateurs représentant les résultats de la comparaison.
+ /// Lancée si le code n'est pas complet.
+ /// Lancée si le code est invalide.
public IReadOnlyList Comparer(Code code)
{
// Je suis le bon code
@@ -85,6 +134,10 @@ namespace CoreLibrary.Core
return indicateurs;
}
+ ///
+ /// Retourne la taille du code sous forme de chaîne de caractères.
+ ///
+ /// Renvoie une chaîne de caractères représentant la taille du code.
public override string ToString() => $"Code({Taille})";
}
}