diff --git a/README.md b/README.md
index 24b55f2..a953b79 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,31 @@
-# mastermind
+[](https://codefirst.iut.uca.fr/nicolas.barbosa/mastermind)
-SAE2.01 - Développement d'une application
-R2.02 - Développement d'applications avec IHM
-R2.03 - Qualité de développement
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=celestebarbosa-mastermind)
-Mastermind en C#, MAUI, et .net
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=celestebarbosa-mastermind)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=celestebarbosa-mastermind)
-BARBOSA Céleste
-PRADY Pauline
-TURPIN-ETIENNE Camille
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=celestebarbosa-mastermind)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=celestebarbosa-mastermind)
+
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=celestebarbosa-mastermind)
+
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=celestebarbosa-mastermind)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=celestebarbosa-mastermind)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=celestebarbosa-mastermind)
+
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=celestebarbosa-mastermind)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=celestebarbosa-mastermind)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=celestebarbosa-mastermind)
+
+---
+
+# Mastermind - Projet IHM
+
+**Céleste BARBOSA**\
+**Pauline PRADY**\
+**Camille TURPIN-ETIENNE**\
+
+---
+
+## Réalisation d'un jeu vidéo en .NET, C# & MAUI
diff --git a/Sources/ConsoleApp/Evenements.cs b/Sources/ConsoleApp/Evenements.cs
index 662f9ce..14068e9 100644
--- a/Sources/ConsoleApp/Evenements.cs
+++ b/Sources/ConsoleApp/Evenements.cs
@@ -3,8 +3,14 @@ using CoreLibrary;
namespace ConsoleApp
{
+ ///
+ /// Fournit des gestionnaires d'événements les événements liés au déroulement de la partie.
+ ///
public class Evenements
{
+ ///
+ /// Gestionnaire d'événement pour l'ajout d'un joueur.
+ ///
public static string? DemanderJoueur(Object? sender, DemanderJoueurEventArgs e)
{
Console.WriteLine($"Joueur {e.Numero}");
@@ -18,6 +24,9 @@ namespace ConsoleApp
}
+ ///
+ /// Gestionnaire d'événement pour le début de la partie.
+ ///
public static void CommencerLaPartie(Object? sender, DebutPartieEventArgs e)
{
Utils.DessinerSeparateur();
@@ -25,7 +34,9 @@ namespace ConsoleApp
Console.WriteLine("La partie commence, bonne chance à tous !\n");
}
-
+ ///
+ /// Gestionnaire d'événement pour le début d'un nouveau tour.
+ ///
public static void NouveauTour(Object? sender, NouveauTourEventArgs e)
{
Utils.DessinerSeparateur();
@@ -38,6 +49,9 @@ namespace ConsoleApp
}
+ ///
+ /// Gestionnaire d'événement pour la demande d'ajout d'un jeton.
+ ///
public static Jeton? DemanderJeton(Object? sender, DemanderJetonEventArgs e)
{
Console.TreatControlCAsInput = true;
@@ -83,16 +97,25 @@ namespace ConsoleApp
return new Jeton(couleurs[indice]);
}
+ ///
+ /// Gestionnaire d'événement pour l'ajout d'un jeton.
+ ///
public static void AjouterJeton(Object? sender, AjouterJetonEventArgs e)
{
Utils.DessinerPion(e.Jeton.Couleur);
}
+ ///
+ /// Gestionnaire d'événement pour la suppression du dernier jeton ajouté.
+ ///
public static void SupprimerDernierJeton(Object? sender, SupprimerDernierJetonEventArgs e)
{
Console.Write("\b\b\b \b\b\b\b\b\b");
}
+ ///
+ /// Gestionnaire d'événement pour l'ajout d'un code.
+ ///
public static void AjouterCode(Object? sender, AjouterCodeEventArgs e)
{
Console.WriteLine();
@@ -100,6 +123,9 @@ namespace ConsoleApp
Utils.DessinerSeparateur();
}
+ ///
+ /// Gestionnaire d'événement pour la fin de la partie.
+ ///
public static void PartieTerminee(Object? sender, PartieTermineeEventArgs e)
{
Joueur[] gagnants = e.Gagnants.ToArray();
diff --git a/Sources/CoreLibrary/Events/AjouterCodeEventArgs.cs b/Sources/CoreLibrary/Events/AjouterCodeEventArgs.cs
index 3cd1c56..489fded 100644
--- a/Sources/CoreLibrary/Events/AjouterCodeEventArgs.cs
+++ b/Sources/CoreLibrary/Events/AjouterCodeEventArgs.cs
@@ -1,9 +1,20 @@
namespace CoreLibrary.Events
{
+ ///
+ /// Représente les arguments d'événement pour l'événement de l'ajout d'un code.
+ ///
public class AjouterCodeEventArgs : EventArgs
{
- public Code Code { get; private set; }
+ ///
+ /// Obtient le code ajouté.
+ ///
+ public Code Code { get; private set; }
+
+ ///
+ /// Initialise une nouvelle instance de la classe avec le code spécifié.
+ ///
+ /// Le code à ajouter.
public AjouterCodeEventArgs(Code code)
{
Code = code;
diff --git a/Sources/CoreLibrary/Events/AjouterJetonEventArgs.cs b/Sources/CoreLibrary/Events/AjouterJetonEventArgs.cs
index 50b35ab..a19fcbf 100644
--- a/Sources/CoreLibrary/Events/AjouterJetonEventArgs.cs
+++ b/Sources/CoreLibrary/Events/AjouterJetonEventArgs.cs
@@ -2,9 +2,20 @@
namespace CoreLibrary.Events
{
+ ///
+ /// Représente les arguments d'événement pour l'événement d'ajout d'un jeton.
+ ///
public class AjouterJetonEventArgs : EventArgs
{
+ ///
+ /// Obtient le jeton ajouté.
+ ///
public Jeton Jeton { get; private set; }
+
+ ///
+ /// Initialise une nouvelle instance de la classe avec le jeton spécifié.
+ ///
+ /// Le jeton à ajouter.
public AjouterJetonEventArgs(Jeton jeton)
{
Jeton = jeton;
diff --git a/Sources/CoreLibrary/Events/AjouterJoueursEventArgs.cs b/Sources/CoreLibrary/Events/AjouterJoueursEventArgs.cs
index 4fb2ddb..0e04345 100644
--- a/Sources/CoreLibrary/Events/AjouterJoueursEventArgs.cs
+++ b/Sources/CoreLibrary/Events/AjouterJoueursEventArgs.cs
@@ -1,9 +1,19 @@
namespace CoreLibrary.Events
{
+ ///
+ /// Représente les arguments d'événement pour l'événement d'ajout d'un joueur.
+ ///
public class AjouterJoueursEventArgs : EventArgs
{
+ ///
+ /// Obtient le joueur ajouté.
+ ///
public Joueur Joueur { get; private set; }
+ ///
+ /// Initialise une nouvelle instance de la classe avec le joueur spécifié.
+ ///
+ /// Le joueur à ajouter.
public AjouterJoueursEventArgs(Joueur joueur)
{
Joueur = joueur;
diff --git a/Sources/CoreLibrary/Events/DebutPartieEventArgs.cs b/Sources/CoreLibrary/Events/DebutPartieEventArgs.cs
index 5b830a7..631c7ca 100644
--- a/Sources/CoreLibrary/Events/DebutPartieEventArgs.cs
+++ b/Sources/CoreLibrary/Events/DebutPartieEventArgs.cs
@@ -1,5 +1,8 @@
namespace CoreLibrary.Events
{
+ ///
+ /// Représente les arguments d'événement pour le début d'une partie.
+ ///
public class DebutPartieEventArgs : EventArgs
{
}
diff --git a/Sources/CoreLibrary/Events/DemanderJetonEventArgs.cs b/Sources/CoreLibrary/Events/DemanderJetonEventArgs.cs
index e2a982b..41c2059 100644
--- a/Sources/CoreLibrary/Events/DemanderJetonEventArgs.cs
+++ b/Sources/CoreLibrary/Events/DemanderJetonEventArgs.cs
@@ -1,6 +1,9 @@
namespace CoreLibrary.Events
{
+ ///
+ /// Représente les arguments d'événement pour la demande d'ajout d'un jeton.
+ ///
public class DemanderJetonEventArgs : EventArgs
{
}
diff --git a/Sources/CoreLibrary/Events/DemanderJoueurEventArgs.cs b/Sources/CoreLibrary/Events/DemanderJoueurEventArgs.cs
index 9b38733..42ed8c2 100644
--- a/Sources/CoreLibrary/Events/DemanderJoueurEventArgs.cs
+++ b/Sources/CoreLibrary/Events/DemanderJoueurEventArgs.cs
@@ -1,9 +1,20 @@
namespace CoreLibrary.Events
{
+ ///
+ /// Représente les arguments d'événement pour la demande d'ajout d'un joueur.
+ ///
public class DemanderJoueurEventArgs : EventArgs
{
+ ///
+ /// Obtient le numéro du joueur à ajouter.
+ ///
public int Numero { get; private set; }
+
+ ///
+ /// Initialise une nouvelle instance de la classe avec le numéro du joueur spécifié.
+ ///
+ /// Le numéro du joueur à ajouter.
public DemanderJoueurEventArgs(int numero)
{
Numero = numero;
diff --git a/Sources/CoreLibrary/Events/NouveauTourEventArgs.cs b/Sources/CoreLibrary/Events/NouveauTourEventArgs.cs
index 1a15771..cc577b1 100644
--- a/Sources/CoreLibrary/Events/NouveauTourEventArgs.cs
+++ b/Sources/CoreLibrary/Events/NouveauTourEventArgs.cs
@@ -2,13 +2,38 @@
namespace CoreLibrary.Events
{
+ ///
+ /// Représente les arguments d'événement pour le début d'un nouveau tour.
+ ///
public class NouveauTourEventArgs : EventArgs
{
+ ///
+ /// Obtient le joueur dont c'est le tour.
+ ///
public Joueur Joueur { get; private set; }
+
+ ///
+ /// Obtient le numéro du tour.
+ ///
public int Tour { get; private set; }
+
+ ///
+ /// Obtient la grille du joueur actuelle.
+ ///
public IEnumerable> Grille { get; private set; }
+
+ ///
+ /// Obtient les indicateurs de la grille de jeu.
+ ///
public IEnumerable> Indicateurs { get; private set; }
+ ///
+ /// Initialise une nouvelle instance de la classe avec les informations spécifiées.
+ ///
+ /// Le joueur dont c'est le tour.
+ /// Le numéro du tour.
+ /// La grille du joueur actuelle.
+ /// Les indicateurs de la grille de jeu.
public NouveauTourEventArgs(Joueur joueur, int tour, IEnumerable> grille, IEnumerable> indicateurs)
{
Joueur = joueur;
diff --git a/Sources/CoreLibrary/Events/PartieTermineeEventArgs.cs b/Sources/CoreLibrary/Events/PartieTermineeEventArgs.cs
index 094073c..955fc4e 100644
--- a/Sources/CoreLibrary/Events/PartieTermineeEventArgs.cs
+++ b/Sources/CoreLibrary/Events/PartieTermineeEventArgs.cs
@@ -6,11 +6,26 @@ using System.Threading.Tasks;
namespace CoreLibrary.Events
{
+ ///
+ /// Représente les arguments d'événement pour la fin d'une partie.
+ ///
public class PartieTermineeEventArgs : EventArgs
{
+ ///
+ /// Obtient les joueurs gagnants de la partie.
+ ///
public IEnumerable Gagnants { get; private set; }
+
+ ///
+ /// Obtient les joueurs perdants de la partie.
+ ///
public IEnumerable Perdants { get; private set; }
+ ///
+ /// Initialise une nouvelle instance de la classe avec les gagnants et les perdants spécifiés.
+ ///
+ /// Les joueurs gagnants de la partie.
+ /// Les joueurs perdants de la partie.
public PartieTermineeEventArgs(IEnumerable gagnants, IEnumerable perdants)
{
Gagnants = gagnants;
diff --git a/Sources/CoreLibrary/Events/PasserMainEventArgs.cs b/Sources/CoreLibrary/Events/PasserMainEventArgs.cs
index fcff1f4..91df021 100644
--- a/Sources/CoreLibrary/Events/PasserMainEventArgs.cs
+++ b/Sources/CoreLibrary/Events/PasserMainEventArgs.cs
@@ -1,5 +1,8 @@
namespace CoreLibrary.Events
{
+ ///
+ /// Représente les arguments d'événement pour le passage de la main au joueur suivant.
+ ///
public class PasserMainEventArgs : EventArgs
{
}
diff --git a/Sources/CoreLibrary/Events/SupprimerDernierJetonEventArgs.cs b/Sources/CoreLibrary/Events/SupprimerDernierJetonEventArgs.cs
index 4796efd..8ba6ae9 100644
--- a/Sources/CoreLibrary/Events/SupprimerDernierJetonEventArgs.cs
+++ b/Sources/CoreLibrary/Events/SupprimerDernierJetonEventArgs.cs
@@ -1,5 +1,8 @@
namespace CoreLibrary.Events
{
+ ///
+ /// Représente les arguments d'événement pour la suppression du dernier jeton ajouté.
+ ///
public class SupprimerDernierJetonEventArgs : EventArgs
{
}
diff --git a/Sources/CoreLibrary/ReglesClassiques.cs b/Sources/CoreLibrary/ReglesClassiques.cs
index 6aab766..44950b5 100644
--- a/Sources/CoreLibrary/ReglesClassiques.cs
+++ b/Sources/CoreLibrary/ReglesClassiques.cs
@@ -2,26 +2,54 @@
namespace CoreLibrary
{
+ ///
+ /// Implémente les règles 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; }
+ ///
+ /// 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 +57,12 @@ 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 +71,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 +90,29 @@ 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)
@@ -82,7 +130,10 @@ namespace CoreLibrary
return false;
}
-
+ ///
+ /// Obtient les joueurs gagnants de la partie.
+ ///
+ /// La liste des joueurs gagnants.
public IEnumerable Gagnants()
{
Joueur[] gagnants = [];
@@ -97,6 +148,10 @@ namespace CoreLibrary
return gagnants;
}
+ ///
+ /// Obtient les joueurs perdants de la partie.
+ ///
+ /// La liste des joueurs perdants.
public IEnumerable Perdants()
{
Joueur[] perdants = [];