From 7fa21229e6ea1034d28dff3ae8f26faedc72e871 Mon Sep 17 00:00:00 2001 From: "camille.turpin-etienne" Date: Wed, 5 Jun 2024 14:01:51 +0200 Subject: [PATCH] doc Partie --- Sources/CoreLibrary/Partie.cs | 71 +++++++++++++++++++++++++++-------- 1 file changed, 55 insertions(+), 16 deletions(-) diff --git a/Sources/CoreLibrary/Partie.cs b/Sources/CoreLibrary/Partie.cs index 889edd9..9c477c2 100644 --- a/Sources/CoreLibrary/Partie.cs +++ b/Sources/CoreLibrary/Partie.cs @@ -16,28 +16,32 @@ namespace CoreLibrary public class Partie : IEstPersistant { /// - /// Evénement déclencher quand il faut ajouter un joueur. + /// Evénement déclenché lorsqu'il faut ajouter un joueur à la partie. /// public event EventHandler? PartieDemanderJoueur; /// - /// Evénement déclencher lors du commencement d'une partie. + /// Evénement déclenché lors du commencement de la partie. /// public event EventHandler? PartieDebutPartie; + + /// + /// Evénement déclenché lorsqu'il faut demander à un joueur de jouer. + /// public event EventHandler? PartieDemanderJoueurJouer; /// - /// Evénement déclencher quand il s'agit d'un nouveau tour. + /// Evénement déclenché lorsqu'un nouveau tour commence. /// public event EventHandler? PartieNouveauTour; /// - /// Evénement déclencher quand on passe la main au joueur suivant. + /// Evénement déclenché lorsqu'on passe la main au joueur suivant. /// public event EventHandler? PartiePasserLaMain; /// - /// Evénement déclencher quand la partie est terminée. + /// Evénement déclenché lorsque la partie est terminée. /// public event EventHandler? PartiePartieTerminee; @@ -51,44 +55,79 @@ namespace CoreLibrary /// Méthode pour déclencher l'événement de début de partie. /// private void QuandPartieDebutPartie() => PartieDebutPartie?.Invoke(this, new PartieDebutPartieEventArgs()); + + /// + /// Méthode pour déclencher l'événement demandant à un joueur de jouer. + /// + /// Le code à utiliser pour jouer. private void QuandPartieDemanderJoueurJouer(Code code) => PartieDemanderJoueurJouer?.Invoke(this, new PartieDemanderJoueurJouerEventArgs(Tour, Joueurs.ElementAt(courant), plateaux.ElementAt(courant), code, joueurs[Joueurs.ElementAt(courant)])); + + /// + /// Méthode pour déclencher l'événement d'un nouveau tour. + /// + /// Le code utilisé pour le nouveau tour. private void QuandPartieNouveauTour(Code code) => PartieNouveauTour?.Invoke(this, new PartieNouveauTourEventArgs(Tour, Joueurs.ElementAt(courant), plateaux.ElementAt(courant), code, joueurs[Joueurs.ElementAt(courant)])); + + /// + /// Méthode pour déclencher l'événement de passer la main au joueur suivant. + /// private void QuandPartiePasserLaMain() => PartiePasserLaMain?.Invoke(this, new PartiePasserLaMainEventArgs(Joueurs.ElementAt(courant))); + + /// + /// Méthode pour déclencher l'événement de fin de partie. + /// + /// Liste des noms des joueurs gagnants. + /// Liste des noms des joueurs perdants. private void QuandPartiePartieTerminee(IReadOnlyList gagnants, IReadOnlyList perdants) => PartiePartieTerminee?.Invoke(this, new PartiePartieTermineeEventArgs(gagnants, perdants)); /// - /// Liste des joueurs. + /// Dictionnaire des joueurs, avec leur nom et le statut de leur joueur (humain ou robot). /// [DataMember] private readonly Dictionary joueurs = new Dictionary(); + + /// + /// Liste des plateaux de jeu. + /// plateaux = new List(); /// - /// Entier correspondant au joueur courant. + /// Indice correspondant au joueur courant. /// [DataMember] private int courant = 0; + /// + /// Liste des noms des joueurs. + /// public IReadOnlyList Joueurs => joueurs.Keys.ToList(); + + /// + /// Liste des noms des robots. + /// public IReadOnlyList Robots => joueurs.Where(joueur => joueur.Value).Select(joueur => joueur.Key).ToList(); + + /// + /// Indique si la partie est terminée. + /// [DataMember] public bool Termine { get; private set; } = false; /// - /// Entier correspondant au nombre de tour. + /// Numéro du tour actuel. /// [DataMember] public int Tour { get; private set; } = 0; /// - /// Regles utiliser dans la partie. + /// Règles utilisées dans la partie. /// [DataMember] public IRegles Regles { get; private init; } /// - /// Premier constructeur de partie. + /// Premier constructeur de la partie. /// /// Les règles de la partie. public Partie(IRegles regles) @@ -97,7 +136,7 @@ namespace CoreLibrary } /// - /// Deuxième constructeur de partie. + /// Deuxième constructeur de la partie. /// /// La partie à reprendre en cours. public Partie(Partie partie) @@ -144,8 +183,8 @@ namespace CoreLibrary /// /// Connecte les joueurs à la partie. /// - /// La class qui appelle l'évenement; ici Joueur. - /// L'instance de l'événement PlateauAjouterCodeEventArgs créée par Joueur. + /// La classe qui appelle l'événement, ici Joueur. + /// L'instance de l'événement JoueurSeConnecterEventArgs créée par Joueur. private void JoueurConnecte(object? sender, JoueurSeConnecterEventArgs e) { joueurs.Add(e.Joueur.Nom, e.Joueur.GetType().Equals(typeof(Joueur))); @@ -182,7 +221,7 @@ namespace CoreLibrary } /// - /// Permet de changer de tour. + /// Passe au tour suivant. /// private void NouveauTour() { @@ -195,8 +234,8 @@ namespace CoreLibrary /// /// Ajoute un code au plateau. /// - /// La class qui appelle l'évenement; ici Plateau - /// L'instance de l'événement PlateauAjouterCodeEventArgs créée par Plateau . + /// La classe qui appelle l'événement, ici Plateau. + /// L'instance de l'événement PlateauAjouterCodeEventArgs créée par Plateau. private void PlateauAjouterCode(object? sender, PlateauAjouterCodeEventArgs e) { QuandPartiePasserLaMain();