From 6645c50a8eeed222038ceb854a3f58e395b9f7b9 Mon Sep 17 00:00:00 2001 From: "pauline.prady" Date: Mon, 6 May 2024 19:31:03 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20des=20=C3=A9v=C3=A9nements=20dans=20par?= =?UTF-8?q?tie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/ConsoleApp/Program.cs | 9 +++++ Sources/CoreLibrary/CoreLibrary.csproj | 4 -- .../Events/AjouterCodeEventArgs.cs | 12 ++++++ .../Events/AjouterJetonEventArgs.cs | 13 +++++++ .../Events/AjouterJoueursEventArgs.cs | 12 ++++++ .../Events/DebutPartieEventArgs.cs | 10 +++++ .../Events/NouveauTourEventArgs.cs | 14 +++++++ .../Events/PartieTermineeEventArgs.cs | 20 ++++++++++ .../CoreLibrary/Events/PasserMainEventArgs.cs | 13 +++++++ Sources/CoreLibrary/Partie.cs | 37 ++++++++++++++++--- 10 files changed, 135 insertions(+), 9 deletions(-) create mode 100644 Sources/CoreLibrary/Events/AjouterCodeEventArgs.cs create mode 100644 Sources/CoreLibrary/Events/AjouterJetonEventArgs.cs create mode 100644 Sources/CoreLibrary/Events/AjouterJoueursEventArgs.cs create mode 100644 Sources/CoreLibrary/Events/DebutPartieEventArgs.cs create mode 100644 Sources/CoreLibrary/Events/NouveauTourEventArgs.cs create mode 100644 Sources/CoreLibrary/Events/PartieTermineeEventArgs.cs create mode 100644 Sources/CoreLibrary/Events/PasserMainEventArgs.cs diff --git a/Sources/ConsoleApp/Program.cs b/Sources/ConsoleApp/Program.cs index 3c85a5e..a43a2ae 100644 --- a/Sources/ConsoleApp/Program.cs +++ b/Sources/ConsoleApp/Program.cs @@ -1,4 +1,13 @@ using CoreLibrary; +using CoreLibrary.Events; + +void LaPartieDemarre(object sender, DebutPartieEventArgs evenement) +{ + Console.WriteLine("La partie commence"); +} + Partie maPartie = new Partie(new ReglesClassiques()); +maPartie.debutPartie += LaPartieDemarre; + maPartie.Jouer(); diff --git a/Sources/CoreLibrary/CoreLibrary.csproj b/Sources/CoreLibrary/CoreLibrary.csproj index 9ff0d50..fa71b7a 100644 --- a/Sources/CoreLibrary/CoreLibrary.csproj +++ b/Sources/CoreLibrary/CoreLibrary.csproj @@ -6,8 +6,4 @@ enable - - - - diff --git a/Sources/CoreLibrary/Events/AjouterCodeEventArgs.cs b/Sources/CoreLibrary/Events/AjouterCodeEventArgs.cs new file mode 100644 index 0000000..3cd1c56 --- /dev/null +++ b/Sources/CoreLibrary/Events/AjouterCodeEventArgs.cs @@ -0,0 +1,12 @@ + +namespace CoreLibrary.Events +{ + public class AjouterCodeEventArgs : EventArgs + { + public Code Code { get; private set; } + public AjouterCodeEventArgs(Code code) + { + Code = code; + } + } +} diff --git a/Sources/CoreLibrary/Events/AjouterJetonEventArgs.cs b/Sources/CoreLibrary/Events/AjouterJetonEventArgs.cs new file mode 100644 index 0000000..50b35ab --- /dev/null +++ b/Sources/CoreLibrary/Events/AjouterJetonEventArgs.cs @@ -0,0 +1,13 @@ + + +namespace CoreLibrary.Events +{ + public class AjouterJetonEventArgs : EventArgs + { + public Jeton Jeton { get; private set; } + public AjouterJetonEventArgs(Jeton jeton) + { + Jeton = jeton; + } + } +} diff --git a/Sources/CoreLibrary/Events/AjouterJoueursEventArgs.cs b/Sources/CoreLibrary/Events/AjouterJoueursEventArgs.cs new file mode 100644 index 0000000..4fb2ddb --- /dev/null +++ b/Sources/CoreLibrary/Events/AjouterJoueursEventArgs.cs @@ -0,0 +1,12 @@ +namespace CoreLibrary.Events +{ + public class AjouterJoueursEventArgs : EventArgs + { + public Joueur Joueur { get; private set; } + + public AjouterJoueursEventArgs(Joueur joueur) + { + Joueur = joueur; + } + } +} diff --git a/Sources/CoreLibrary/Events/DebutPartieEventArgs.cs b/Sources/CoreLibrary/Events/DebutPartieEventArgs.cs new file mode 100644 index 0000000..93745af --- /dev/null +++ b/Sources/CoreLibrary/Events/DebutPartieEventArgs.cs @@ -0,0 +1,10 @@ +namespace CoreLibrary.Events +{ + public class DebutPartieEventArgs : EventArgs + { + + public DebutPartieEventArgs() + { + } + } +} diff --git a/Sources/CoreLibrary/Events/NouveauTourEventArgs.cs b/Sources/CoreLibrary/Events/NouveauTourEventArgs.cs new file mode 100644 index 0000000..a6e297f --- /dev/null +++ b/Sources/CoreLibrary/Events/NouveauTourEventArgs.cs @@ -0,0 +1,14 @@ +namespace CoreLibrary.Events +{ + public class NouveauTourEventArgs : EventArgs + { + public Joueur Joueur { get; private set; } + public int Tour { get; private set; } + + public NouveauTourEventArgs(Joueur joueur, int tour) + { + Joueur = joueur; + Tour = tour; + } + } +} \ No newline at end of file diff --git a/Sources/CoreLibrary/Events/PartieTermineeEventArgs.cs b/Sources/CoreLibrary/Events/PartieTermineeEventArgs.cs new file mode 100644 index 0000000..094073c --- /dev/null +++ b/Sources/CoreLibrary/Events/PartieTermineeEventArgs.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CoreLibrary.Events +{ + public class PartieTermineeEventArgs : EventArgs + { + public IEnumerable Gagnants { get; private set; } + public IEnumerable Perdants { get; private set; } + + public PartieTermineeEventArgs(IEnumerable gagnants, IEnumerable perdants) + { + Gagnants = gagnants; + Perdants = perdants; + } + } +} diff --git a/Sources/CoreLibrary/Events/PasserMainEventArgs.cs b/Sources/CoreLibrary/Events/PasserMainEventArgs.cs new file mode 100644 index 0000000..30999ad --- /dev/null +++ b/Sources/CoreLibrary/Events/PasserMainEventArgs.cs @@ -0,0 +1,13 @@ + +using System.Security.Cryptography.X509Certificates; + +namespace CoreLibrary.Events +{ + public class PasserMainEventArgs : EventArgs + { + public PasserMainEventArgs() + { + + } + } +} diff --git a/Sources/CoreLibrary/Partie.cs b/Sources/CoreLibrary/Partie.cs index fb61c2c..41a2bd9 100644 --- a/Sources/CoreLibrary/Partie.cs +++ b/Sources/CoreLibrary/Partie.cs @@ -1,9 +1,28 @@ -namespace CoreLibrary +using CoreLibrary.Events; + +namespace CoreLibrary { public class Partie { private IRegles regles; + public event EventHandler ajouterJoueur; + public event EventHandler debutPartie; + public event EventHandler nouveauTour; + public event EventHandler ajouterJeton; + public event EventHandler ajouterCode; + public event EventHandler passerMain; + public event EventHandler partieTerminee; + + private void QuandAjouterJoueur(Joueur joueur) => ajouterJoueur?.Invoke(this, new AjouterJoueursEventArgs(joueur)); + private void QuandDebutPartie() => debutPartie?.Invoke(this, new DebutPartieEventArgs()); + private void QuandNouveauTour(Joueur joueur, int tour) => nouveauTour?.Invoke(this, new NouveauTourEventArgs(joueur, tour)); + private void QuandNouveauJeton(Jeton jeton) => ajouterJeton?.Invoke(this, new AjouterJetonEventArgs(jeton)); + private void QuandNouveauCode(Code code) => ajouterCode?.Invoke(this, new AjouterCodeEventArgs(code)); + private void QuandPasserMain() => passerMain?.Invoke(this, new PasserMainEventArgs()); + private void QuandPartieTerminee(IEnumerable gagnants, IEnumerable perdants) => partieTerminee?.Invoke(this, new PartieTermineeEventArgs(gagnants, perdants)); + + public Partie(IRegles regles) { this.regles = regles; @@ -11,34 +30,41 @@ public void Jouer() { - DefinirJoueurs(); + DefinirJoueurs(); regles.CommencerLaPartie(); + QuandDebutPartie(); while (!regles.EstTerminee()) { Joueur joueurCourant = regles.JoueurCourant(); - Plateau plateauCourant = joueurCourant.Plateau; + Plateau plateauCourant = joueurCourant.Plateau; + + QuandNouveauTour(joueurCourant, plateauCourant.Tour); Code code = regles.GenererCode(); while (!code.EstComplet()) { - AjouterJeton(code); + AjouterJeton(code); + } plateauCourant.AjouterCode(code); + QuandNouveauCode(code); regles.PasserLaMain(); + QuandPasserMain(); } PartieTerminee(); - + QuandPartieTerminee(regles.Gagnants(), regles.Perdants()); } private void AjouterJeton(Code code) { Jeton jeton = new Jeton(Couleur.ROUGE); code.AjouterJeton(jeton); + QuandNouveauJeton(jeton); } private void DefinirJoueurs() @@ -47,6 +73,7 @@ { string nom = "pauline"; regles.AjouterJoueur(nom); + //QuandAjouterJoueur() } }