diff --git a/Sources/CoreLibrary/Evenements/JoueurSeConnecterEventArgs.cs b/Sources/CoreLibrary/Evenements/JoueurSeConnecterEventArgs.cs index 8983132..2cfa7d2 100644 --- a/Sources/CoreLibrary/Evenements/JoueurSeConnecterEventArgs.cs +++ b/Sources/CoreLibrary/Evenements/JoueurSeConnecterEventArgs.cs @@ -1,14 +1,12 @@ -using CoreLibrary.Joueurs; - -namespace CoreLibrary.Evenements +namespace CoreLibrary.Evenements { public class JoueurSeConnecterEventArgs : EventArgs { - public Joueur JoueurConnecte { get; private init; } + public string Nom { get; private init; } - public JoueurSeConnecterEventArgs(Joueur joueurConnecte) + public JoueurSeConnecterEventArgs(string nom) { - JoueurConnecte = joueurConnecte; + Nom = nom; } } } diff --git a/Sources/CoreLibrary/Evenements/PartieNouveauTourEventArgs.cs b/Sources/CoreLibrary/Evenements/PartieNouveauTourEventArgs.cs index 9c4e707..b64b5c9 100644 --- a/Sources/CoreLibrary/Evenements/PartieNouveauTourEventArgs.cs +++ b/Sources/CoreLibrary/Evenements/PartieNouveauTourEventArgs.cs @@ -6,11 +6,11 @@ namespace CoreLibrary.Evenements public class PartieNouveauTourEventArgs : EventArgs { public int Tour { get; private init; } - public Joueur Joueur { get; private init; } + public string Joueur { get; private init; } public Plateau Plateau { get; private init; } public Code Code { get; private init; } - public PartieNouveauTourEventArgs(int tour, Joueur joueur, Plateau plateau, Code code) + public PartieNouveauTourEventArgs(int tour, string joueur, Plateau plateau, Code code) { Tour = tour; Joueur = joueur; diff --git a/Sources/CoreLibrary/Evenements/PartiePartieTermineeEventArgs.cs b/Sources/CoreLibrary/Evenements/PartiePartieTermineeEventArgs.cs index c006567..7ef2542 100644 --- a/Sources/CoreLibrary/Evenements/PartiePartieTermineeEventArgs.cs +++ b/Sources/CoreLibrary/Evenements/PartiePartieTermineeEventArgs.cs @@ -4,10 +4,10 @@ namespace CoreLibrary.Evenements { public class PartiePartieTermineeEventArgs : EventArgs { - public IReadOnlyList Gagnants { get; private init; } - public IReadOnlyList Perdants { get; private init; } + public IReadOnlyList Gagnants { get; private init; } + public IReadOnlyList Perdants { get; private init; } - public PartiePartieTermineeEventArgs(IReadOnlyList gagnants, IReadOnlyList perdants) + public PartiePartieTermineeEventArgs(IReadOnlyList gagnants, IReadOnlyList perdants) { Gagnants = gagnants; Perdants = perdants; diff --git a/Sources/CoreLibrary/Evenements/PartiePasserLaMainEventArgs.cs b/Sources/CoreLibrary/Evenements/PartiePasserLaMainEventArgs.cs index 59fd14a..557e8d6 100644 --- a/Sources/CoreLibrary/Evenements/PartiePasserLaMainEventArgs.cs +++ b/Sources/CoreLibrary/Evenements/PartiePasserLaMainEventArgs.cs @@ -1,12 +1,10 @@ -using CoreLibrary.Joueurs; - -namespace CoreLibrary.Evenements +namespace CoreLibrary.Evenements { public class PartiePasserLaMainEventArgs { - public Joueur Joueur { get; private init; } + public string Joueur { get; private init; } - public PartiePasserLaMainEventArgs(Joueur joueur) + public PartiePasserLaMainEventArgs(string joueur) { Joueur = joueur; } diff --git a/Sources/CoreLibrary/Joueurs/Joueur.cs b/Sources/CoreLibrary/Joueurs/Joueur.cs index 3369cdc..2956f4d 100644 --- a/Sources/CoreLibrary/Joueurs/Joueur.cs +++ b/Sources/CoreLibrary/Joueurs/Joueur.cs @@ -13,7 +13,7 @@ namespace CoreLibrary.Joueurs { public event EventHandler? JoueurSeConnecter; - private void QuandJoueurSeConnecter() => JoueurSeConnecter?.Invoke(this, new JoueurSeConnecterEventArgs(this)); + private void QuandJoueurSeConnecter() => JoueurSeConnecter?.Invoke(this, new JoueurSeConnecterEventArgs(Nom)); [DataMember] private Dictionary<(IRegles, Statistique), int> statistiques = new Dictionary<(IRegles, Statistique), int>(); diff --git a/Sources/CoreLibrary/Manageurs/Manageur.cs b/Sources/CoreLibrary/Manageurs/Manageur.cs index 9283be8..b9210b0 100644 --- a/Sources/CoreLibrary/Manageurs/Manageur.cs +++ b/Sources/CoreLibrary/Manageurs/Manageur.cs @@ -2,6 +2,7 @@ using CoreLibrary.Joueurs; using CoreLibrary.Regles; using CoreLibrary.Statistiques; +using System.Text.RegularExpressions; namespace CoreLibrary.Manageurs { @@ -13,7 +14,7 @@ namespace CoreLibrary.Manageurs public IReadOnlyList Joueurs => joueurs; public IReadOnlyList Parties => parties; - public IReadOnlyList PartiesNonTerminees => parties.Where(partie => !partie.Termine).ToList(); + public IReadOnlyList PartiesNonTerminees => parties.Where(partie => !partie.Termine).Reverse().ToList(); public Manageur(IPersistance persistance) { @@ -29,37 +30,59 @@ namespace CoreLibrary.Manageurs persistance.Enregistrer(parties.ToArray()); } + public Partie ChargerPartie(Partie partie) + { + parties.Remove(partie); + + Partie nouvellePartie = new Partie(partie); + parties.Add(nouvellePartie); + + EcouterPartie(nouvellePartie); + + return nouvellePartie; + } + public Partie NouvellePartie(IRegles regles) { Partie partie = new Partie(regles); - parties.Add(partie); - partie.PartiePasserLaMain += (sender, e) => e.Joueur.IncrementerStatistique(partie.Regles, Statistique.CoupJoue); + EcouterPartie(partie); + return partie; + } + + private void EcouterPartie(Partie partie) + { + partie.PartieDemanderJoueur += (sender, e) => Sauvegarder(); + partie.PartieDebutPartie += (sender, e) => Sauvegarder(); partie.PartieNouveauTour += (sender, e) => Sauvegarder(); + partie.PartiePasserLaMain += (sender, e) => + { + DemanderJoueur(e.Joueur).IncrementerStatistique(partie.Regles, Statistique.CoupJoue); + Sauvegarder(); + }; + partie.PartiePartieTerminee += (sender, e) => { if (e.Gagnants.Count == 1) { - e.Gagnants[0].IncrementerStatistique(regles, Statistique.PartieGagnee); + DemanderJoueur(e.Gagnants[0]).IncrementerStatistique(partie.Regles, Statistique.PartieGagnee); } else { - foreach (Joueur gagnant in e.Gagnants) - gagnant.IncrementerStatistique(regles, Statistique.PartieEgalite); + foreach (string gagnant in e.Gagnants) + DemanderJoueur(gagnant).IncrementerStatistique(partie.Regles, Statistique.PartieEgalite); } - foreach (Joueur perdant in e.Perdants) + foreach (string perdant in e.Perdants) { - perdant.IncrementerStatistique(regles, Statistique.PartiePerdue); + DemanderJoueur(perdant).IncrementerStatistique(partie.Regles, Statistique.PartiePerdue); } Sauvegarder(); }; - - return partie; } public Joueur DemanderJoueur(string nom) diff --git a/Sources/CoreLibrary/Partie.cs b/Sources/CoreLibrary/Partie.cs index 6658277..f793400 100644 --- a/Sources/CoreLibrary/Partie.cs +++ b/Sources/CoreLibrary/Partie.cs @@ -19,18 +19,18 @@ namespace CoreLibrary private void QuandPartieDemanderJoueur(Joueur joueurDemande) => PartieDemanderJoueur?.Invoke(this, new PartieDemanderJoueurEventArgs(joueurs.Count + 1, joueurDemande)); private void QuandPartieDebutPartie() => PartieDebutPartie?.Invoke(this, new PartieDebutPartieEventArgs()); - private void QuandPartieNouveauTour() => PartieNouveauTour?.Invoke(this, new PartieNouveauTourEventArgs(plateaux.ElementAt(courant).Taille + 1, joueurs.ElementAt(courant), plateaux.ElementAt(courant), new Code(Regles.TailleCode))); + private void QuandPartieNouveauTour() => PartieNouveauTour?.Invoke(this, new PartieNouveauTourEventArgs(Tour, joueurs.ElementAt(courant), plateaux.ElementAt(courant), new Code(Regles.TailleCode))); private void QuandPartiePasserLaMain() => PartiePasserLaMain?.Invoke(this, new PartiePasserLaMainEventArgs(joueurs.ElementAt(courant))); - private void QuandPartiePartieTerminee(IReadOnlyList gagnants, IReadOnlyList perdants) => PartiePartieTerminee?.Invoke(this, new PartiePartieTermineeEventArgs(gagnants, perdants)); + private void QuandPartiePartieTerminee(IReadOnlyList gagnants, IReadOnlyList perdants) => PartiePartieTerminee?.Invoke(this, new PartiePartieTermineeEventArgs(gagnants, perdants)); [DataMember] - private readonly List joueurs = new List(); + private readonly List joueurs = new List(); [DataMember] private readonly List plateaux = new List(); [DataMember] private int courant = 0; - public IReadOnlyList Joueurs => joueurs; + public IReadOnlyList Joueurs => joueurs; [DataMember] public bool Termine { get; private set; } = false; [DataMember] @@ -44,6 +44,21 @@ namespace CoreLibrary Regles = regles; } + public Partie(Partie partie) + { + joueurs = partie.joueurs; + plateaux = partie.plateaux; + courant = partie.courant; + Tour = partie.Tour; + Regles = partie.Regles; + + partie.PartieDemanderJoueur = null; + partie.PartieDebutPartie = null; + partie.PartieNouveauTour = null; + partie.PartiePasserLaMain = null; + partie.PartiePartieTerminee = null; + } + public void Jouer() { if (joueurs.Count != Regles.NbJoueurs) @@ -62,7 +77,7 @@ namespace CoreLibrary private void JoueurConnecte(object? sender, JoueurSeConnecterEventArgs e) { - joueurs.Add(e.JoueurConnecte); + joueurs.Add(e.Nom); plateaux.Add(new Plateau(Regles.TailleCode, Regles.NbTour)); if (joueurs.Count < Regles.NbJoueurs) @@ -77,7 +92,8 @@ namespace CoreLibrary private void DebutPartie() { - Tour = 1; + if (Tour == 0) + ++Tour; foreach (Plateau plateau in plateaux) { @@ -120,8 +136,8 @@ namespace CoreLibrary { Termine = true; - List gagnants = new List(); - List perdants = new List(); + List gagnants = new List(); + List perdants = new List(); for (int i = 0; i < joueurs.Count; ++i) { @@ -133,14 +149,5 @@ namespace CoreLibrary QuandPartiePartieTerminee(gagnants, perdants); } - - public void ReinitialiserEcouteEvenements() - { - PartieDemanderJoueur = null; - PartieDebutPartie = null; - PartieNouveauTour = null; - PartiePasserLaMain = null; - PartiePartieTerminee = null; - } } } diff --git a/Sources/Fichiers/joueurs.json b/Sources/Fichiers/joueurs.json new file mode 100644 index 0000000..527ab1b --- /dev/null +++ b/Sources/Fichiers/joueurs.json @@ -0,0 +1,66 @@ +[ + { + "Nom": "Céleste", + "statistiques": [ + { + "Key": { + "Item1": { + "__type": "ReglesClassiques:#CoreLibrary.Regles" + }, + "Item2": 3 + }, + "Value": 6 + }, + { + "Key": { + "Item1": { + "__type": "ReglesClassiques:#CoreLibrary.Regles" + }, + "Item2": 3 + }, + "Value": 2 + }, + { + "Key": { + "Item1": { + "__type": "ReglesClassiques:#CoreLibrary.Regles" + }, + "Item2": 3 + }, + "Value": 2 + } + ] + }, + { + "Nom": "Pauline", + "statistiques": [ + { + "Key": { + "Item1": { + "__type": "ReglesClassiques:#CoreLibrary.Regles" + }, + "Item2": 3 + }, + "Value": 6 + }, + { + "Key": { + "Item1": { + "__type": "ReglesClassiques:#CoreLibrary.Regles" + }, + "Item2": 3 + }, + "Value": 1 + }, + { + "Key": { + "Item1": { + "__type": "ReglesClassiques:#CoreLibrary.Regles" + }, + "Item2": 3 + }, + "Value": 1 + } + ] + } +] \ No newline at end of file diff --git a/Sources/Fichiers/parties.json b/Sources/Fichiers/parties.json new file mode 100644 index 0000000..80d1f59 --- /dev/null +++ b/Sources/Fichiers/parties.json @@ -0,0 +1,619 @@ +[ + { + "Regles": { + "__type": "ReglesClassiques:#CoreLibrary.Regles" + }, + "Termine": false, + "Tour": 0, + "courant": 0, + "joueurs": [ ], + "plateaux": [ ] + }, + { + "Regles": { + "__type": "ReglesClassiques:#CoreLibrary.Regles" + }, + "Termine": false, + "Tour": 2, + "courant": 1, + "joueurs": [ + "Céleste", + "Pauline" + ], + "plateaux": [ + { + "TailleMax": 12, + "TailleMaxCode": 4, + "Victoire": false, + "codeSecret": { + "Jetons": [ + { + "Couleur": 0 + }, + { + "Couleur": 3 + }, + { + "Couleur": 3 + }, + { + "Couleur": 5 + } + ], + "TailleMax": 4 + }, + "codes": [ + { + "Jetons": [ + { + "Couleur": 3 + }, + { + "Couleur": 3 + }, + { + "Couleur": 3 + }, + { + "Couleur": 3 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 1 + }, + { + "Couleur": 1 + }, + { + "Couleur": 1 + }, + { + "Couleur": 1 + } + ], + "TailleMax": 4 + } + ], + "indicateurs": [ + [ + 0, + 0 + ], + [ ] + ] + }, + { + "TailleMax": 12, + "TailleMaxCode": 4, + "Victoire": false, + "codeSecret": { + "Jetons": [ + { + "Couleur": 0 + }, + { + "Couleur": 0 + }, + { + "Couleur": 2 + }, + { + "Couleur": 2 + } + ], + "TailleMax": 4 + }, + "codes": [ + { + "Jetons": [ + { + "Couleur": 2 + }, + { + "Couleur": 2 + }, + { + "Couleur": 2 + }, + { + "Couleur": 2 + } + ], + "TailleMax": 4 + } + ], + "indicateurs": [ + [ + 0, + 0 + ] + ] + } + ] + }, + { + "Regles": { + "__type": "ReglesClassiques:#CoreLibrary.Regles" + }, + "Termine": false, + "Tour": 8, + "courant": 1, + "joueurs": [ + "Céleste", + "Pauline" + ], + "plateaux": [ + { + "TailleMax": 12, + "TailleMaxCode": 4, + "Victoire": false, + "codeSecret": { + "Jetons": [ + { + "Couleur": 2 + }, + { + "Couleur": 0 + }, + { + "Couleur": 2 + }, + { + "Couleur": 4 + } + ], + "TailleMax": 4 + }, + "codes": [ + { + "Jetons": [ + { + "Couleur": 0 + }, + { + "Couleur": 0 + }, + { + "Couleur": 0 + }, + { + "Couleur": 0 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 1 + }, + { + "Couleur": 1 + }, + { + "Couleur": 1 + }, + { + "Couleur": 1 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 3 + }, + { + "Couleur": 3 + }, + { + "Couleur": 3 + }, + { + "Couleur": 3 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 2 + }, + { + "Couleur": 2 + }, + { + "Couleur": 2 + }, + { + "Couleur": 2 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 4 + }, + { + "Couleur": 4 + }, + { + "Couleur": 4 + }, + { + "Couleur": 4 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 0 + }, + { + "Couleur": 0 + }, + { + "Couleur": 0 + }, + { + "Couleur": 0 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 0 + }, + { + "Couleur": 0 + }, + { + "Couleur": 0 + }, + { + "Couleur": 0 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 3 + }, + { + "Couleur": 3 + }, + { + "Couleur": 3 + }, + { + "Couleur": 3 + } + ], + "TailleMax": 4 + } + ], + "indicateurs": [ + [ + 0 + ], + [ ], + [ ], + [ + 0, + 0 + ], + [ + 0 + ], + [ + 0 + ], + [ + 0 + ], + [ ] + ] + }, + { + "TailleMax": 12, + "TailleMaxCode": 4, + "Victoire": false, + "codeSecret": { + "Jetons": [ + { + "Couleur": 2 + }, + { + "Couleur": 2 + }, + { + "Couleur": 1 + }, + { + "Couleur": 2 + } + ], + "TailleMax": 4 + }, + "codes": [ + { + "Jetons": [ + { + "Couleur": 4 + }, + { + "Couleur": 4 + }, + { + "Couleur": 4 + }, + { + "Couleur": 4 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 2 + }, + { + "Couleur": 2 + }, + { + "Couleur": 2 + }, + { + "Couleur": 2 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 0 + }, + { + "Couleur": 0 + }, + { + "Couleur": 0 + }, + { + "Couleur": 0 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 1 + }, + { + "Couleur": 1 + }, + { + "Couleur": 1 + }, + { + "Couleur": 1 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 5 + }, + { + "Couleur": 5 + }, + { + "Couleur": 5 + }, + { + "Couleur": 5 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 2 + }, + { + "Couleur": 2 + }, + { + "Couleur": 2 + }, + { + "Couleur": 2 + } + ], + "TailleMax": 4 + }, + { + "Jetons": [ + { + "Couleur": 4 + }, + { + "Couleur": 4 + }, + { + "Couleur": 4 + }, + { + "Couleur": 4 + } + ], + "TailleMax": 4 + } + ], + "indicateurs": [ + [ ], + [ + 0, + 0, + 0 + ], + [ ], + [ + 0 + ], + [ ], + [ + 0, + 0, + 0 + ], + [ ] + ] + } + ] + }, + { + "Regles": { + "__type": "ReglesClassiques:#CoreLibrary.Regles" + }, + "Termine": false, + "Tour": 1, + "courant": 0, + "joueurs": [ + "Joueur 1", + "Joueur 2" + ], + "plateaux": [ + { + "TailleMax": 12, + "TailleMaxCode": 4, + "Victoire": false, + "codeSecret": { + "Jetons": [ + { + "Couleur": 2 + }, + { + "Couleur": 4 + }, + { + "Couleur": 5 + }, + { + "Couleur": 2 + } + ], + "TailleMax": 4 + }, + "codes": [ ], + "indicateurs": [ ] + }, + { + "TailleMax": 12, + "TailleMaxCode": 4, + "Victoire": false, + "codeSecret": { + "Jetons": [ + { + "Couleur": 1 + }, + { + "Couleur": 4 + }, + { + "Couleur": 2 + }, + { + "Couleur": 4 + } + ], + "TailleMax": 4 + }, + "codes": [ ], + "indicateurs": [ ] + } + ] + }, + { + "Regles": { + "__type": "ReglesClassiques:#CoreLibrary.Regles" + }, + "Termine": false, + "Tour": 1, + "courant": 0, + "joueurs": [ + "Céleste", + "Pauline" + ], + "plateaux": [ + { + "TailleMax": 12, + "TailleMaxCode": 4, + "Victoire": false, + "codeSecret": { + "Jetons": [ + { + "Couleur": 3 + }, + { + "Couleur": 3 + }, + { + "Couleur": 4 + }, + { + "Couleur": 3 + } + ], + "TailleMax": 4 + }, + "codes": [ ], + "indicateurs": [ ] + }, + { + "TailleMax": 12, + "TailleMaxCode": 4, + "Victoire": false, + "codeSecret": { + "Jetons": [ + { + "Couleur": 4 + }, + { + "Couleur": 0 + }, + { + "Couleur": 3 + }, + { + "Couleur": 4 + } + ], + "TailleMax": 4 + }, + "codes": [ ], + "indicateurs": [ ] + } + ] + } +] \ No newline at end of file diff --git a/Sources/MauiSpark/Pages/PlateauPage.xaml.cs b/Sources/MauiSpark/Pages/PlateauPage.xaml.cs index 396a690..685a439 100644 --- a/Sources/MauiSpark/Pages/PlateauPage.xaml.cs +++ b/Sources/MauiSpark/Pages/PlateauPage.xaml.cs @@ -8,7 +8,7 @@ namespace MauiSpark.Pages; internal class Tour { public IEnumerable<(IEnumerable, IEnumerable)> Plateau { get; private init; } - public Joueur Joueur { get; private init; } + public string Joueur { get; private init; } public string Numero { get; private init; } public Code Code { get; private init; } diff --git a/Sources/MauiSpark/Pages/VictoirePage.xaml.cs b/Sources/MauiSpark/Pages/VictoirePage.xaml.cs index 79dbdc6..8d7eb84 100644 --- a/Sources/MauiSpark/Pages/VictoirePage.xaml.cs +++ b/Sources/MauiSpark/Pages/VictoirePage.xaml.cs @@ -40,21 +40,21 @@ public partial class VictoirePage : ContentPage Application.Current.MainPage.Navigation.RemovePage(page); } - IReadOnlyList gagnants = e.Gagnants; - IReadOnlyList perdants = e.Perdants; + IReadOnlyList gagnants = e.Gagnants; + IReadOnlyList perdants = e.Perdants; if (gagnants.Count == 1) BindingContext = new Message() { Titre = "Victoire", - Texte = $"Le joueur {gagnants.First().Nom} a gagné", + Texte = $"Le joueur {gagnants[0]} a gagné", Image = "trophy.jpg" }; else if (gagnants.Count > 1) BindingContext = new Message() { Titre = "Egalité", - Texte = $"Les joueurs {string.Join(' ', gagnants.Select(joueur => joueur.Nom))} ont gagné", + Texte = $"Les joueurs {string.Join(' ', gagnants)} ont gagné", Image = "egalite.jpg" }; else diff --git a/Sources/MauiSpark/Vues/PartieCommenceeVue.xaml.cs b/Sources/MauiSpark/Vues/PartieCommenceeVue.xaml.cs index 286ea3d..bac0486 100644 --- a/Sources/MauiSpark/Vues/PartieCommenceeVue.xaml.cs +++ b/Sources/MauiSpark/Vues/PartieCommenceeVue.xaml.cs @@ -1,8 +1,6 @@ using CoreLibrary; -using CoreLibrary.Joueurs; using MauiSpark.Pages; using System.ComponentModel; -using System.Runtime.CompilerServices; namespace MauiSpark.Vues; @@ -26,7 +24,7 @@ public partial class PartieCommenceeVue : ContentView, INotifyPropertyChanged get => $"Tour : {(Partie != null ? Partie.Tour : 0)} / {(Partie != null ? Partie.Regles.NbTour : 0)}"; } - public Joueur[] Joueurs + public string[] Joueurs { get => Partie != null ? Partie.Joueurs.ToArray() : []; } @@ -46,11 +44,13 @@ public partial class PartieCommenceeVue : ContentView, INotifyPropertyChanged if (Partie == null) return; - Partie.PartieDemanderJoueur += new ConnexionPage().QuandDemanderNom; - Partie.PartieNouveauTour += new PlateauPage().QuandNouveauTour; - Partie.PartiePartieTerminee += new VictoirePage().QuandPartieTerminee; + Partie partie = MauiProgram.Manageur.ChargerPartie(Partie); - Partie.Jouer(); + partie.PartieDemanderJoueur += new ConnexionPage().QuandDemanderNom; + partie.PartieNouveauTour += new PlateauPage().QuandNouveauTour; + partie.PartiePartieTerminee += new VictoirePage().QuandPartieTerminee; + + partie.Jouer(); } public PartieCommenceeVue()