using CoreLibrary.Events; using CoreLibrary.Joueurs; namespace MauiSpark.Pages; public partial class Victoire : ContentPage { public Victoire() { NavigationPage.SetHasNavigationBar(this, false); InitializeComponent(); } public async void QuandPartieTerminee(object? sender, PartieTermineeEventArgs e) { if (Application.Current == null || Application.Current.MainPage == null) return; if (((NavigationPage)Application.Current.MainPage).CurrentPage != this) await Application.Current.MainPage.Navigation.PushAsync(this); IEnumerable pages = Application.Current.MainPage.Navigation.NavigationStack.Reverse().Skip(1); foreach (Page page in pages) { if (page is AccueilPage) break; Application.Current.MainPage.Navigation.RemovePage(page); } Joueur[] gagnants = e.Gagnants; Joueur[] perdants = e.Perdants; if (gagnants.Length == 1) BindingContext = ("Victoire", $"Le joueur {gagnants.First().Nom} a gagné"); else if (gagnants.Length > 1) BindingContext = ("Egalité", $"Les joueurs {string.Join(' ', gagnants.Select(joueur => joueur.Nom))} ont gagné"); else BindingContext = ("Défaite", "Personne n'a trouvé le code..."); if (gagnants.Length == 1) gagnants.First().AGagne(); else foreach (Joueur gagnant in gagnants) gagnant.AEgalite(); foreach (Joueur perdant in perdants) perdant.APerdu(); } public async void QuandMenuPresse(object sender, EventArgs e) { await Navigation.PopAsync(); } }