diff --git a/Sources/CoreLibrary/Exceptions/CodeCompletException.cs b/Sources/CoreLibrary/Exceptions/CodeCompletException.cs index 3a560c0..a9fe1b5 100644 --- a/Sources/CoreLibrary/Exceptions/CodeCompletException.cs +++ b/Sources/CoreLibrary/Exceptions/CodeCompletException.cs @@ -1,7 +1,13 @@ namespace CoreLibrary.Exceptions { + /// + /// Exception levée lorsqu'un jeton est ajouté à un code déjà complet. + /// public class CodeCompletException : Exception { + /// + /// Initialise une nouvelle instance de la classe . + /// public CodeCompletException() : base("Le code dans lequel vous essayez d'ajouter un jeton est déjà complet.") { } diff --git a/Sources/CoreLibrary/Exceptions/CodeIncompletException.cs b/Sources/CoreLibrary/Exceptions/CodeIncompletException.cs index 5e29af8..3d7642c 100644 --- a/Sources/CoreLibrary/Exceptions/CodeIncompletException.cs +++ b/Sources/CoreLibrary/Exceptions/CodeIncompletException.cs @@ -1,7 +1,13 @@ namespace CoreLibrary.Exceptions { + /// + /// Exception levée lorsqu'un code incomplet est ajouté à la grille. + /// public class CodeIncompletException : Exception { + /// + /// Initialise une nouvelle instance de la classe . + /// public CodeIncompletException() : base("Le code que vous essayez d'ajouter dans la grille n'est pas complet.") { } diff --git a/Sources/CoreLibrary/Exceptions/CodeInvalideException.cs b/Sources/CoreLibrary/Exceptions/CodeInvalideException.cs index fe616e9..73c629d 100644 --- a/Sources/CoreLibrary/Exceptions/CodeInvalideException.cs +++ b/Sources/CoreLibrary/Exceptions/CodeInvalideException.cs @@ -1,7 +1,15 @@ namespace CoreLibrary.Exceptions { + /// + /// Exception levée lorsqu'un code avec une taille invalide est ajouté à la grille. + /// public class CodeInvalideException : Exception { + /// + /// Initialise une nouvelle instance de la classe . + /// + /// La taille du code que vous essayez d'ajouter. + /// La taille du code que le plateau attend. public CodeInvalideException(int tailleCodeAjoute, int tailleCodePlateau) : base($"Le code que vous essayez d'ajouter est un code de taille {tailleCodeAjoute}, or le plateau attend un code de {tailleCodePlateau}.") { } diff --git a/Sources/CoreLibrary/Exceptions/CodeVideException.cs b/Sources/CoreLibrary/Exceptions/CodeVideException.cs index bc6c9d4..b05da88 100644 --- a/Sources/CoreLibrary/Exceptions/CodeVideException.cs +++ b/Sources/CoreLibrary/Exceptions/CodeVideException.cs @@ -1,7 +1,13 @@ namespace CoreLibrary.Exceptions { + /// + /// Exception levée lorsqu'un jeton est supprimé d'un code qui est déjà vide. + /// public class CodeVideException : Exception { + /// + /// Initialise une nouvelle instance de la classe . + /// public CodeVideException() : base("Le code dans lequel vous essayez de supprimer un jeton est déjà vide.") { } diff --git a/Sources/CoreLibrary/Exceptions/GrilleCompleteException.cs b/Sources/CoreLibrary/Exceptions/GrilleCompleteException.cs index b7f8434..b02a9c0 100644 --- a/Sources/CoreLibrary/Exceptions/GrilleCompleteException.cs +++ b/Sources/CoreLibrary/Exceptions/GrilleCompleteException.cs @@ -1,7 +1,13 @@ namespace CoreLibrary.Exceptions { + /// + /// Exception levée lorsqu'un code est ajouté à une grille qui est déjà complète. + /// public class GrilleCompleteException : Exception { + /// + /// Initialise une nouvelle instance de la classe . + /// public GrilleCompleteException() : base("La grille dans laquelle vous essayez d'ajouter un code est déjà complète.") { } diff --git a/Sources/CoreLibrary/Exceptions/IndiceCodeException.cs b/Sources/CoreLibrary/Exceptions/IndiceCodeException.cs index 8b3c0e5..f1b246a 100644 --- a/Sources/CoreLibrary/Exceptions/IndiceCodeException.cs +++ b/Sources/CoreLibrary/Exceptions/IndiceCodeException.cs @@ -1,7 +1,15 @@ namespace CoreLibrary.Exceptions { + /// + /// Exception levée lorsqu'un indice de jeton est invalide. + /// public class IndiceCodeException : Exception { + /// + /// Initialise une nouvelle instance de la classe . + /// + /// L'indice incorrect qui a été spécifié. + /// L'indice maximum permis. public IndiceCodeException(int indice, int indiceMax) : base($"Vous avez essayé de récupérer le jeton à la place {indice}, mais son indice doit être compris entre 0 et {indiceMax}.") { } diff --git a/Sources/CoreLibrary/Exceptions/PartieNonCommenceeException.cs b/Sources/CoreLibrary/Exceptions/PartieNonCommenceeException.cs index 052bacc..b4768f7 100644 --- a/Sources/CoreLibrary/Exceptions/PartieNonCommenceeException.cs +++ b/Sources/CoreLibrary/Exceptions/PartieNonCommenceeException.cs @@ -1,7 +1,13 @@ namespace CoreLibrary.Exceptions { + /// + /// Exception levée lorsqu'une opération est tentée alors que la partie n'a pas encore commencé. + /// public class PartieNonCommenceeException : Exception { + /// + /// Initialise une nouvelle instance de la classe . + /// public PartieNonCommenceeException() : base("La partie n'a pas encore commencée.") { } diff --git a/Sources/CoreLibrary/Exceptions/TailleCodeException.cs b/Sources/CoreLibrary/Exceptions/TailleCodeException.cs index ebf67c9..5563cdd 100644 --- a/Sources/CoreLibrary/Exceptions/TailleCodeException.cs +++ b/Sources/CoreLibrary/Exceptions/TailleCodeException.cs @@ -1,7 +1,14 @@ namespace CoreLibrary.Exceptions { + /// + /// Exception levée lorsqu'une taille de code invalide est spécifiée. + /// public class TailleCodeException : Exception { + /// + /// Initialise une nouvelle instance de la classe . + /// + /// La taille du code spécifiée. public TailleCodeException(int taille) : base($"Un code doit avoir une taille positive non nulle, or il a reçu {taille}.") { } diff --git a/Sources/CoreLibrary/Exceptions/TailleGrilleException.cs b/Sources/CoreLibrary/Exceptions/TailleGrilleException.cs index 494e1ee..332b319 100644 --- a/Sources/CoreLibrary/Exceptions/TailleGrilleException.cs +++ b/Sources/CoreLibrary/Exceptions/TailleGrilleException.cs @@ -1,7 +1,14 @@ namespace CoreLibrary.Exceptions { + /// + /// Exception levée lorsqu'une taille de grille invalide est spécifiée. + /// public class TailleGrilleException : Exception { + /// + /// Initialise une nouvelle instance de la classe . + /// + /// La taille de grille spécifiée. public TailleGrilleException(int taille) : base($"Une grille doit avoir une taille positive non nulle, or elle a reçu {taille}.") { } diff --git a/Sources/CoreLibrary/Plateau.cs b/Sources/CoreLibrary/Plateau.cs index dd3bbff..5e421d3 100644 --- a/Sources/CoreLibrary/Plateau.cs +++ b/Sources/CoreLibrary/Plateau.cs @@ -2,6 +2,9 @@ namespace CoreLibrary { + /// + /// Représente un plateau de jeu composer de code + /// public class Plateau { private static Random random = new Random(); @@ -12,9 +15,23 @@ namespace CoreLibrary private readonly int tailleCode; + /// + /// Obtient le numéro de tour actuel. + /// public int Tour { get; private set; } = 1; + + /// + /// Obtient True si le joueur a gagné sinon False + /// public bool Victoire { get; private set; } = false; + /// + /// Initialise une nouvelle instance de la classe . + /// + /// Taille des codes du plateau + /// Taille du plateau de jeu + /// Levée lorsque la tailleCode est inférieur ou égal à 0. + /// Levée lorsque la tailleGrille est inférieur ou égal à 0. public Plateau(int tailleCode, int tailleGrille) { if(tailleCode <= 0) @@ -36,6 +53,9 @@ namespace CoreLibrary GenererCodeAleatoire(); } + /// + /// Génère un code secret aléatoire en utilisant des jetons de couleurs aléatoire. + /// private void GenererCodeAleatoire() { Couleur[] couleurs = (Couleur[])Enum.GetValues(typeof(Couleur)); @@ -46,11 +66,21 @@ namespace CoreLibrary } } + /// + /// Vérifie si le plateau de jeu est plein. + /// + /// True si la tableau est plein, sinon False. public bool EstComplet() { return Tour - 1 == grille.Length; } + /// + /// Ajoute le code fourni au plateau de jeu. + /// + /// Le code à ajouter au plateau de jeu. + /// Levée lorsque le code fourni à une taille invalide. + /// Levée lorsque le code fourni est incomplet. public void AjouterCode(Code code) { if (code.TailleMaximale() != tailleCode) @@ -73,6 +103,13 @@ namespace CoreLibrary } } + /// + /// Vérifie si le code fourni correspond au code secret. + /// + /// Le code à vérifier. + /// True si le code fourni correspond au code secret, sinon False + /// Levée lorsque le code fourni à une taille invalide. + /// Levée lorsque le code fourni est incomplet. public bool EstBonCode(Code code) { if (code.TailleMaximale() != tailleCode) @@ -103,6 +140,10 @@ namespace CoreLibrary return true; } + /// + /// Récupère le plateau de jeu. + /// + /// Le plateau de jeu représenté sous forme d'une collections de jetons. public IEnumerable> Grille() { IEnumerable[] grilleJetons = new IEnumerable[grille.Length]; @@ -115,6 +156,10 @@ namespace CoreLibrary return grilleJetons; } + /// + /// Récupère les indicateurs pour chaque tour. + /// + /// Les indicateurs pour chaque tour représentés sous forme d'une collections d'indicateurs. public IEnumerable> Indicateurs() { return indicateurs; diff --git a/Sources/CoreLibrary/ReglesClassiques.cs b/Sources/CoreLibrary/ReglesClassiques.cs index 6aab766..e724f4c 100644 --- a/Sources/CoreLibrary/ReglesClassiques.cs +++ b/Sources/CoreLibrary/ReglesClassiques.cs @@ -2,26 +2,53 @@ namespace CoreLibrary { + /// + /// Implémente les règles classiques du jeu. + /// public class ReglesClassiques : IRegles { private int nbJoueurs = 0; private int? joueurCourant; private readonly Joueur[] joueurs; + /// + /// Obtient le nom des règles. + /// public string Nom { get => "Règles classiques"; } + /// + /// Obtient le nombre maximum de tours. + /// public int TourMaximum { get => 12; } + + /// + /// Obtient la taille maximale d'un code. + /// public int TailleCodeMaximum { get => 4; } + + /// + /// Obtient le nombre de joueurs actuels dans le jeu. + /// public int NbJoueurs { get => nbJoueurs; } - public int NbJoueursMaximum { get => 2; } + /// + /// Obtient le nombre maximum de joueurs possible pour le jeu. + /// + public int NbJoueursMaximum { get => 2; } + /// + /// Initialise une nouvelle instance de la classe en initialisant un tableau de joueurs avec la taille maximale de joueurs autorisée. + /// public ReglesClassiques() { joueurs = new Joueur[NbJoueursMaximum]; } - + /// + /// Ajoute un joueur avec le nom spécifié. + /// + /// Le nom du joueur à ajouter. + /// Le joueur ajouté. public Joueur AjouterJoueur(string nom) { Joueur joueur = new Joueur(nom, new Plateau(TailleCodeMaximum, TourMaximum)); @@ -29,6 +56,11 @@ namespace CoreLibrary return joueur; } + /// + /// Obtient le joueur dont c'est actuellement le tour. + /// + /// Le joueur actuel. + /// Levée lorsqu'il n'y a pas de joueur courant. public Joueur JoueurCourant() { if (!joueurCourant.HasValue) @@ -37,6 +69,10 @@ namespace CoreLibrary return joueurs[joueurCourant.Value]; } + /// + /// Passe la main au joueur suivant. + /// + /// Levée lorsqu'il n'y a pas de joueur courant. public void PasserLaMain() { if (!joueurCourant.HasValue) @@ -52,19 +88,27 @@ namespace CoreLibrary } - + /// + /// Génère un nouveau code. + /// + /// Le code généré public Code GenererCode() { return new Code(TailleCodeMaximum); } - + /// + /// Initialise le premier joueur à jouer. + /// public void CommencerLaPartie() { joueurCourant = 0; } - + /// + /// Vérifie si la partie est terminée. + /// + /// True si la partie est terminée, sinon False. public bool EstTerminee() { if (!joueurCourant.HasValue || joueurCourant != 0) @@ -83,6 +127,10 @@ namespace CoreLibrary } + /// + /// Obtient les joueurs gagnants de la partie. + /// + /// La liste des joueurs gagnants. public IEnumerable Gagnants() { Joueur[] gagnants = []; @@ -97,6 +145,10 @@ namespace CoreLibrary return gagnants; } + /// + /// Obtient les joueurs perdants de la partie. + /// + /// La liste des joueurs perdants. public IEnumerable Perdants() { Joueur[] perdants = [];