ajout des événements dans partie
continuous-integration/drone/push Build is passing Details

master
Pauline PRADY 12 months ago
parent 33c2b4ff03
commit 6645c50a8e

@ -1,4 +1,13 @@
using CoreLibrary; using CoreLibrary;
using CoreLibrary.Events;
void LaPartieDemarre(object sender, DebutPartieEventArgs evenement)
{
Console.WriteLine("La partie commence");
}
Partie maPartie = new Partie(new ReglesClassiques()); Partie maPartie = new Partie(new ReglesClassiques());
maPartie.debutPartie += LaPartieDemarre;
maPartie.Jouer(); maPartie.Jouer();

@ -6,8 +6,4 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<Folder Include="Events\" />
</ItemGroup>
</Project> </Project>

@ -0,0 +1,12 @@

namespace CoreLibrary.Events
{
public class AjouterCodeEventArgs : EventArgs
{
public Code Code { get; private set; }
public AjouterCodeEventArgs(Code code)
{
Code = code;
}
}
}

@ -0,0 +1,13 @@

namespace CoreLibrary.Events
{
public class AjouterJetonEventArgs : EventArgs
{
public Jeton Jeton { get; private set; }
public AjouterJetonEventArgs(Jeton jeton)
{
Jeton = jeton;
}
}
}

@ -0,0 +1,12 @@
namespace CoreLibrary.Events
{
public class AjouterJoueursEventArgs : EventArgs
{
public Joueur Joueur { get; private set; }
public AjouterJoueursEventArgs(Joueur joueur)
{
Joueur = joueur;
}
}
}

@ -0,0 +1,10 @@
namespace CoreLibrary.Events
{
public class DebutPartieEventArgs : EventArgs
{
public DebutPartieEventArgs()
{
}
}
}

@ -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;
}
}
}

@ -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<Joueur> Gagnants { get; private set; }
public IEnumerable<Joueur> Perdants { get; private set; }
public PartieTermineeEventArgs(IEnumerable<Joueur> gagnants, IEnumerable<Joueur> perdants)
{
Gagnants = gagnants;
Perdants = perdants;
}
}
}

@ -0,0 +1,13 @@

using System.Security.Cryptography.X509Certificates;
namespace CoreLibrary.Events
{
public class PasserMainEventArgs : EventArgs
{
public PasserMainEventArgs()
{
}
}
}

@ -1,9 +1,28 @@
namespace CoreLibrary using CoreLibrary.Events;
namespace CoreLibrary
{ {
public class Partie public class Partie
{ {
private IRegles regles; private IRegles regles;
public event EventHandler<AjouterJoueursEventArgs> ajouterJoueur;
public event EventHandler<DebutPartieEventArgs> debutPartie;
public event EventHandler<NouveauTourEventArgs> nouveauTour;
public event EventHandler<AjouterJetonEventArgs> ajouterJeton;
public event EventHandler<AjouterCodeEventArgs> ajouterCode;
public event EventHandler<PasserMainEventArgs> passerMain;
public event EventHandler<PartieTermineeEventArgs> 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<Joueur> gagnants, IEnumerable<Joueur> perdants) => partieTerminee?.Invoke(this, new PartieTermineeEventArgs(gagnants, perdants));
public Partie(IRegles regles) public Partie(IRegles regles)
{ {
this.regles = regles; this.regles = regles;
@ -14,31 +33,38 @@
DefinirJoueurs(); DefinirJoueurs();
regles.CommencerLaPartie(); regles.CommencerLaPartie();
QuandDebutPartie();
while (!regles.EstTerminee()) while (!regles.EstTerminee())
{ {
Joueur joueurCourant = regles.JoueurCourant(); Joueur joueurCourant = regles.JoueurCourant();
Plateau plateauCourant = joueurCourant.Plateau; Plateau plateauCourant = joueurCourant.Plateau;
QuandNouveauTour(joueurCourant, plateauCourant.Tour);
Code code = regles.GenererCode(); Code code = regles.GenererCode();
while (!code.EstComplet()) while (!code.EstComplet())
{ {
AjouterJeton(code); AjouterJeton(code);
} }
plateauCourant.AjouterCode(code); plateauCourant.AjouterCode(code);
QuandNouveauCode(code);
regles.PasserLaMain(); regles.PasserLaMain();
QuandPasserMain();
} }
PartieTerminee(); PartieTerminee();
QuandPartieTerminee(regles.Gagnants(), regles.Perdants());
} }
private void AjouterJeton(Code code) private void AjouterJeton(Code code)
{ {
Jeton jeton = new Jeton(Couleur.ROUGE); Jeton jeton = new Jeton(Couleur.ROUGE);
code.AjouterJeton(jeton); code.AjouterJeton(jeton);
QuandNouveauJeton(jeton);
} }
private void DefinirJoueurs() private void DefinirJoueurs()
@ -47,6 +73,7 @@
{ {
string nom = "pauline"; string nom = "pauline";
regles.AjouterJoueur(nom); regles.AjouterJoueur(nom);
//QuandAjouterJoueur()
} }
} }

Loading…
Cancel
Save