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