From a02124f89d5aa168d01747f08fcca6dfa60b2e6e Mon Sep 17 00:00:00 2001 From: "pauline.prady" Date: Tue, 4 Jun 2024 15:13:41 +0200 Subject: [PATCH] Documentation Partie, ajouter e et sender description. --- Sources/CoreLibrary/Partie.cs | 104 +++++++++++++++++++++++++++++++++- 1 file changed, 103 insertions(+), 1 deletion(-) diff --git a/Sources/CoreLibrary/Partie.cs b/Sources/CoreLibrary/Partie.cs index f793400..0709495 100644 --- a/Sources/CoreLibrary/Partie.cs +++ b/Sources/CoreLibrary/Partie.cs @@ -7,43 +7,120 @@ using System.Runtime.Serialization; namespace CoreLibrary { + /// + /// Classe représentant une partie. + /// [DataContract] [KnownType(typeof(ReglesClassiques))] public class Partie : IEstPersistant { + /// + /// Evénement déclencher quand il faut ajouter un joueur. + /// public event EventHandler? PartieDemanderJoueur; + + /// + /// Evénement déclencher lors du commencement d'une partie. + /// public event EventHandler? PartieDebutPartie; + + /// + /// Evénement déclencher quand il s'agit d'un nouveau tour. + /// public event EventHandler? PartieNouveauTour; + + /// + /// Evénement déclencher quand on passe la main au joueur suivant. + /// public event EventHandler? PartiePasserLaMain; + + /// + /// Evénement déclencher quand la partie est terminée. + /// public event EventHandler? PartiePartieTerminee; + /// + /// Méthode pour déclencher l'événement qui demande le joueur. + /// + /// . private void QuandPartieDemanderJoueur(Joueur joueurDemande) => PartieDemanderJoueur?.Invoke(this, new PartieDemanderJoueurEventArgs(joueurs.Count + 1, joueurDemande)); + + /// + /// 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 de nouveau tour. + /// private void QuandPartieNouveauTour() => PartieNouveauTour?.Invoke(this, new PartieNouveauTourEventArgs(Tour, joueurs.ElementAt(courant), plateaux.ElementAt(courant), new Code(Regles.TailleCode))); + + /// + /// Méthode pour déclencher l'événement pour passer la main. + /// private void QuandPartiePasserLaMain() => PartiePasserLaMain?.Invoke(this, new PartiePasserLaMainEventArgs(joueurs.ElementAt(courant))); + + /// + /// Méthode pour déclencher l'événement si la partie est terminée. + /// + /// Liste des joueurs gagnants. + /// Liste des joueurs perdants. private void QuandPartiePartieTerminee(IReadOnlyList gagnants, IReadOnlyList perdants) => PartiePartieTerminee?.Invoke(this, new PartiePartieTermineeEventArgs(gagnants, perdants)); - + + /// + /// Liste des joueurs. + /// [DataMember] private readonly List joueurs = new List(); + + /// + /// Liste des plateaux. + /// [DataMember] private readonly List plateaux = new List(); + + /// + /// Entier correspondant au joueur courant. + /// [DataMember] private int courant = 0; + /// + /// La liste des joueurs remplit. + /// public IReadOnlyList Joueurs => joueurs; + + /// + /// Booléen pour suivre le statut de la partie. + /// [DataMember] public bool Termine { get; private set; } = false; + + /// + /// Entier correspondant au nombre de tour. + /// [DataMember] public int Tour { get; private set; } = 0; + /// + /// Regles utiliser dans la partie. + /// [DataMember] public IRegles Regles { get; private init; } + /// + /// Premier constructeur de partie. + /// + /// Les règles de la partie. public Partie(IRegles regles) { Regles = regles; } + /// + /// Deuxième constructeur de partie. + /// + /// La partie à reprendre en cours. public Partie(Partie partie) { joueurs = partie.joueurs; @@ -59,6 +136,9 @@ namespace CoreLibrary partie.PartiePartieTerminee = null; } + /// + /// Lance le déroulement de la partie. + /// public void Jouer() { if (joueurs.Count != Regles.NbJoueurs) @@ -67,6 +147,9 @@ namespace CoreLibrary DebutPartie(); } + /// + /// Demande un joueur. + /// private void DemanderJoueur() { Joueur joueurDemande = new Joueur(); @@ -75,6 +158,11 @@ namespace CoreLibrary QuandPartieDemanderJoueur(joueurDemande); } + /// + /// Connecte les joueurs à la partie. + /// + /// . + /// . private void JoueurConnecte(object? sender, JoueurSeConnecterEventArgs e) { joueurs.Add(e.Nom); @@ -90,6 +178,9 @@ namespace CoreLibrary } } + /// + /// Lance le début de la partie. + /// private void DebutPartie() { if (Tour == 0) @@ -105,11 +196,19 @@ namespace CoreLibrary NouveauTour(); } + /// + /// Permet de changer de tour. + /// private void NouveauTour() { QuandPartieNouveauTour(); } + /// + /// Ajoute un code au plateau. + /// + /// . + /// . private void PlateauAjouterCode(object? sender, PlateauAjouterCodeEventArgs e) { QuandPartiePasserLaMain(); @@ -132,6 +231,9 @@ namespace CoreLibrary } } + /// + /// La partie est terminée. + /// private void PartieTerminee() { Termine = true;