doc de regles et plateau
continuous-integration/drone/push Build is failing Details

master
Camille TURPIN-ETIENNE 11 months ago
parent f05bd665b2
commit a2ac548aa0

@ -5,13 +5,36 @@ using CoreLibrary.Joueurs;
namespace MauiSpark.Pages;
/// <summary>
/// Représente un tour de jeu, avec le plateau actuel, le joueur en cours, le numéro de tour et le code.
/// </summary>
internal class Tour
{
/// <summary>
/// Obtient ou définit le plateau de jeu pour ce tour.
/// </summary>
public IEnumerable<(IEnumerable<Jeton>, IEnumerable<Indicateur>)> Plateau { get; private init; }
/// <summary>
/// Obtient ou définit le nom du joueur pour ce tour.
/// </summary>
public string Joueur { get; private init; }
/// <summary>
/// Obtient ou définit le numéro de tour.
/// </summary>
public string Numero { get; private init; }
/// <summary>
/// Obtient ou définit le code pour ce tour.
/// </summary>
public Code Code { get; private init; }
/// <summary>
/// Initialise un tour à partir des arguments de l'événement de nouveau tour de jeu.
/// </summary>
/// <param name="e">Les arguments de l'événement PartieNouveauTourEventArgs.</param>
public Tour(PartieNouveauTourEventArgs e)
{
Numero = $"Tour {e.Tour}";
@ -37,11 +60,18 @@ internal class Tour
}
}
/// <summary>
/// Page affichant le plateau de jeu et permettant aux joueurs d'interagir avec celui-ci.
/// </summary>
public partial class PlateauPage : ContentPage
{
private Code? code;
private Plateau? plateau;
/// <summary>
/// Constructeur de la page du plateau de jeu.
/// Initialise les paramètres de navigation et les composants de la page.
/// </summary>
public PlateauPage()
{
NavigationPage.SetHasNavigationBar(this, false);
@ -49,6 +79,12 @@ public partial class PlateauPage : ContentPage
InitializeComponent();
}
/// <summary>
/// Méthode appelée lorsqu'un nouveau tour de jeu commence.
/// Affiche le nouveau tour de jeu sur le plateau.
/// </summary>
/// <param name="sender">La source de l'événement ; dans ce cas, la partie.</param>
/// <param name="e">Les arguments de l'événement PartieNouveauTourEventArgs.</param>
public async void QuandNouveauTour(object? sender, PartieNouveauTourEventArgs e)
{
if (Application.Current == null || Application.Current.MainPage == null)
@ -73,6 +109,12 @@ public partial class PlateauPage : ContentPage
BindingContext = new Tour(e);
}
/// <summary>
/// Supprime le dernier jeton ajouté au code en cours.
/// Affiche une alerte si le code est vide.
/// </summary>
/// <param name="sender">La source de l'événement ; ici, le bouton de suppression de jeton.</param>
/// <param name="e">Les arguments de l'événement EventArgs.</param>
private void SupprimerDernierJeton(Object sender, EventArgs e)
{
try
@ -86,6 +128,12 @@ public partial class PlateauPage : ContentPage
}
}
/// <summary>
/// Valide le code actuel et l'ajoute au plateau de jeu.
/// Affiche une alerte si le code est incomplet.
/// </summary>
/// <param name="sender">La source de l'événement ; ici, le bouton de validation de code.</param>
/// <param name="e">Les arguments de l'événement EventArgs.</param>
private void ValiderCode(Object sender, EventArgs e)
{
try
@ -99,6 +147,12 @@ public partial class PlateauPage : ContentPage
}
}
/// <summary>
/// Ouvre la page des règles du jeu.
/// </summary>
/// <param name="sender">La source de l'événement ; ici, le bouton de règles du jeu.</param>
/// <param name="e">Les arguments de l'événement EventArgs.</param>
private async void QuandReglesClique(object sender, EventArgs e)
{
await Navigation.PushAsync(new ReglesPage());

@ -1,11 +1,24 @@
namespace MauiSpark.Pages;
/// <summary>
/// Page affichant les règles du jeu.
/// </summary>
internal class Regles
{
public string Titre { get; init; } = "";
/// <summary>
/// Obtient ou définit le titre des règles.
/// </summary>
public string Titre { get; init; } = "";
/// <summary>
/// Obtient ou définit la description des règles.
/// </summary>
public string Description { get; init; } = "";
}
/// <summary>
/// Page affichant les règles du jeu.
/// </summary>
public partial class ReglesPage : ContentPage
{
private static readonly Regles reglesClassiques = new Regles()
@ -14,7 +27,11 @@ public partial class ReglesPage : ContentPage
Description = "Le but du jeu est de découvrir la combinaison. On génère aléatoirement deux combinaisons de 4 couleurs (six couleurs au total : jaune, bleu, rouge, vert, blanc et noir), une combinaison pour chaque joueur. Deux joueurs se battent pour trouver la combinaison en premier, il y a douze tours. Le premier joueur à trouver la combinaison à gagner, chaque joueur a le même nombre de coups à réaliser. Donc si le joueur un à trouvé la solution au bout de huit coups, le joueur deux doit finir son huitième coup. Si le joueur deux trouve la combinaison, les deux joueurs sont à égalité. Sinon, le joueur un gagne. Pour trouver la combinaison, les joueurs disposent de quatre indicateurs. Ces indicateurs sont quatre ronds qui représentent les quatre couleurs sélectionnées par le joueur. Un rond noir signifie quune couleur est à la bonne place, un rond blanc correspond à une mauvaise place et s'il ny a pas dindicateur aucune des couleurs nest présentent dans la combinaison."
};
public ReglesPage()
/// <summary>
/// Constructeur de la page affichant les règles du jeu.
/// Initialise les paramètres de navigation et les composants de la page.
/// </summary>
public ReglesPage()
{
NavigationPage.SetHasNavigationBar(this, false);

Loading…
Cancel
Save