You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.4 KiB
90 lines
2.4 KiB
using CoreLibrary;
|
|
using CoreLibrary.Core;
|
|
using CoreLibrary.Events;
|
|
using CoreLibrary.Exceptions;
|
|
using CoreLibrary.Joueurs;
|
|
using MauiSpark.Convertisseurs;
|
|
|
|
namespace MauiSpark.Pages;
|
|
|
|
internal class Tour
|
|
{
|
|
public IEnumerable<(IEnumerable<Jeton>, IEnumerable<Indicateur>)> Plateau { get; private init; }
|
|
public Joueur Joueur { get; private init; }
|
|
public string Numero { get; private init; }
|
|
public Code Code { get; private init; }
|
|
|
|
public Tour(NouveauTourEventArgs e)
|
|
{
|
|
Numero = $"Tour {e.Tour}";
|
|
Joueur = e.Joueur;
|
|
Code = e.Code;
|
|
|
|
(IEnumerable<Jeton>, IEnumerable<Indicateur>)[] plateau = new (IEnumerable<Jeton>, IEnumerable<Indicateur>)[e.Grille.Count()];
|
|
for (int i = 0; i < e.Grille.Count(); ++i)
|
|
{
|
|
plateau[i] = (e.Grille.ElementAt(i).Where(x => x.HasValue).Select(x => x!.Value), e.Indicateurs.ElementAt(i));
|
|
}
|
|
Plateau = plateau;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public partial class Plateau : ContentPage
|
|
{
|
|
private readonly Code code;
|
|
private readonly Joueur joueur;
|
|
|
|
public Plateau(Partie p, NouveauTourEventArgs e)
|
|
{
|
|
NavigationPage.SetHasBackButton(this, false);
|
|
NavigationPage.SetHasNavigationBar(this, false);
|
|
|
|
InitializeComponent();
|
|
|
|
code = e.Code;
|
|
joueur = e.Joueur;
|
|
|
|
BindingContext = new Tour(e);
|
|
}
|
|
|
|
private void CouleurPresee(Object sender, EventArgs e)
|
|
{
|
|
Label label = (Label)sender;
|
|
Couleur couleur = (Couleur)new CouleurVersCouleurMAUI().ConvertBack(label.TextColor, null, null, null);
|
|
|
|
try
|
|
{
|
|
code.AjouterJeton(new Jeton(couleur));
|
|
}
|
|
catch (CodeCompletException ignored)
|
|
{
|
|
DisplayAlert("Attention", "La code est plein", "OK");
|
|
}
|
|
}
|
|
|
|
private void SupprimerDernierJeton(Object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
code.SupprimerDernierJeton();
|
|
}
|
|
catch(CodeVideException ignored)
|
|
{
|
|
DisplayAlert("Attention", "La code est vide", "OK");
|
|
}
|
|
}
|
|
|
|
private void ValiderCode(Object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
joueur.Code(code);
|
|
}
|
|
catch (CodeIncompletException ignored)
|
|
{
|
|
DisplayAlert("Attention", "La code n'est pas complet", "OK");
|
|
}
|
|
}
|
|
} |