protected void OnGained(PliGainedEventArgs e) { if (PliGainedEvent != null) { PliGainedEvent(this, e); } }
private int JouerPartie(List <Joueur> joueurs) { bool jouer = true; int gagnant = 0; while (jouer) { if ((joueurs[0].Main.Count() == 0)) { jouer = false; gagnant = 1; } else if (joueurs[1].Main.Count() == 0) { jouer = false; gagnant = 0; } if (jouer) { Stack <Carte> pliActuelle = new Stack <Carte>(); Stack <Carte> batailleActuelle = new Stack <Carte>(); PliGainedEventArgs args = new PliGainedEventArgs(); int perdantPli; int gagnantPli = JouerPli(joueurs, ref pliActuelle, ref batailleActuelle); args.Gagnant = joueurs[gagnantPli]; if (gagnantPli == 0) { perdantPli = 1; } else { perdantPli = 0; } args.Perdant = joueurs[perdantPli]; args.Pli = new Stack <Carte>(pliActuelle); args.Bataille = new Stack <Carte>(batailleActuelle); OnGained(args); foreach (Carte carte in pliActuelle) { joueurs[gagnantPli].Main.Enqueue(carte); } foreach (Carte carte in batailleActuelle) { joueurs[gagnantPli].Main.Enqueue(carte); } } } return(gagnant); }
private static void PliGagnee(object sender, PliGainedEventArgs e) { Console.WriteLine(); Console.WriteLine("Gagnant du pli : " + e.Gagnant.Nom + " avait " + e.Gagnant.Main.Count + " cartes."); Console.WriteLine("Il gagne sur le dernier pli :"); foreach (Carte carte in e.Pli) { Console.WriteLine("\t- " + carte); } if (e.Bataille.Count != 0) { Console.WriteLine("Il gagne grace aux batailles :"); foreach (Carte carte in e.Bataille) { Console.WriteLine("\t- " + carte); } } Console.WriteLine("Le perdant du pli : " + e.Perdant.Nom + " a encore " + e.Perdant.Main.Count); }