/// Initialise une nouvelle instance de la classe <see cref="Code"/> avec la longueur de code spécifiée.
/// </summary>
/// <param name="tailleCode">La longueur du code.</param>
/// <exception cref="TailleCodeException">Levée lorsque la longueur du code spécifiée est inférieure ou égale à zéro.</exception>
publicCode(inttailleCode)
publicCode(inttailleCode)
{
{
if(tailleCode<=0)
if(tailleCode<=0)
@ -18,6 +33,11 @@ namespace CoreLibrary
lesJetons=newJeton?[tailleCode];
lesJetons=newJeton?[tailleCode];
}
}
/// <summary>
/// Initialise une nouvelle instance de la class <see cref="Code"/> avec les jetons spécifiés.
/// </summary>
/// <param name="jetons">Les jetons pour initaliser le code.</param>
/// <exception cref="TailleCodeException">Levée lorsque la collection de jetons spécifiée est vide.</exception>
publicCode(IEnumerable<Jeton>jetons)
publicCode(IEnumerable<Jeton>jetons)
{
{
if(jetons.Count()==0)
if(jetons.Count()==0)
@ -32,6 +52,11 @@ namespace CoreLibrary
}
}
}
}
/// <summary>
/// Ajoute un jeton au code.
/// </summary>
/// <param name="jeton">Le jeton à ajouter</param>
/// <exception cref="CodeCompletException">Levée lorsque le code est plein.</exception>
publicvoidAjouterJeton(Jetonjeton)
publicvoidAjouterJeton(Jetonjeton)
{
{
if(NbJetons==TailleMaximale())
if(NbJetons==TailleMaximale())
@ -42,6 +67,10 @@ namespace CoreLibrary
lesJetons[NbJetons++]=jeton;
lesJetons[NbJetons++]=jeton;
}
}
/// <summary>
/// Supprime le dernier jeton ajouté au code.
/// </summary>
/// <exception cref="CodeVideException">Levée lorsque le code est vide.</exception>
publicvoidSupprimerDernierJeton()
publicvoidSupprimerDernierJeton()
{
{
if(NbJetons==0)
if(NbJetons==0)
@ -52,6 +81,12 @@ namespace CoreLibrary
lesJetons[--NbJetons]=null;
lesJetons[--NbJetons]=null;
}
}
/// <summary>
/// Récupère le jeton à l'indice spécifié dans le code.
/// </summary>
/// <param name="indice">L'indice du jeton a récupéré.</param>
/// <returns>Le jeton situé à l'indice spécifié.</returns>
/// <exception cref="IndiceCodeException">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é</exception>
publicJetonRecupererJeton(intindice)
publicJetonRecupererJeton(intindice)
{
{
if(indice<0||indice>TailleMaximale())
if(indice<0||indice>TailleMaximale())
@ -65,33 +100,57 @@ namespace CoreLibrary
returnjeton.Value;
returnjeton.Value;
}
}
/// <summary>
/// Récupère une énumération des jetons dans le code.
/// </summary>
/// <returns>Enumération des jetons du code</returns>
publicIEnumerable<Jeton?>Jetons()
publicIEnumerable<Jeton?>Jetons()
{
{
returnlesJetons;
returnlesJetons;
}
}
/// <summary>
/// Vérifie si le code est complet.
/// </summary>
/// <returns>True si le code est complet, sinon False.</returns>
publicboolEstComplet()
publicboolEstComplet()
{
{
returnNbJetons==lesJetons.Length;
returnNbJetons==lesJetons.Length;
}
}
/// <summary>
/// Recupère la taille maximal du code.
/// </summary>
/// <returns>Taille maximal du code.</returns>
publicintTailleMaximale()
publicintTailleMaximale()
{
{
returnlesJetons.Length;
returnlesJetons.Length;
}
}
/// <summary>
/// Compare le code avec un autre code et génère des indcateurs de correspondance.
/// </summary>
/// <param name="autreCode">Le code à comparer avec le code actuel</param>
/// <returns>Enumération d'indicateurs de correspondance entre les deux codes.</returns>