Documentation Code

master
Pauline PRADY 11 months ago
parent 0ad1456f7a
commit 720a600da0

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

Loading…
Cancel
Save