Fusion indicateurs
continuous-integration/drone/push Build is failing Details

master
Céleste BARBOSA 11 months ago
commit 4fc193ce37

@ -10,6 +10,7 @@ namespace CoreLibrary.Joueurs
{ {
[DataContract] [DataContract]
[KnownType(typeof(ReglesClassiques))] [KnownType(typeof(ReglesClassiques))]
[KnownType(typeof(ReglesDifficiles))]
public class Joueur : IEstPersistant public class Joueur : IEstPersistant
{ {
public event EventHandler<JoueurSeConnecterEventArgs>? JoueurSeConnecter; public event EventHandler<JoueurSeConnecterEventArgs>? JoueurSeConnecter;

@ -9,6 +9,7 @@ namespace CoreLibrary
{ {
[DataContract] [DataContract]
[KnownType(typeof(ReglesClassiques))] [KnownType(typeof(ReglesClassiques))]
[KnownType(typeof(ReglesDifficiles))]
public class Partie : IEstPersistant public class Partie : IEstPersistant
{ {
public event EventHandler<PartieDemanderJoueurEventArgs>? PartieDemanderJoueur; public event EventHandler<PartieDemanderJoueurEventArgs>? PartieDemanderJoueur;

@ -0,0 +1,24 @@
using System.Runtime.Serialization;
namespace CoreLibrary.Regles
{
[DataContract]
public class ReglesDifficiles : IRegles
{
public string Nom => "Règles difficile";
public int NbJoueurs => 2;
public int NbTour => 12;
public int TailleCode => 6;
public override bool Equals(object? obj)
{
if (obj == null || obj is not ReglesDifficiles) return false;
return true;
}
public override int GetHashCode()
{
return HashCode.Combine(Nom, NbJoueurs, NbTour, TailleCode);
}
}
}

File diff suppressed because it is too large Load Diff

@ -5,18 +5,21 @@ namespace MauiSpark.Convertisseurs
{ {
public class IndicateurVersCouleurMAUI : IValueConverter public class IndicateurVersCouleurMAUI : IValueConverter
{ {
public static Color Noir { get; private set; } = Color.FromArgb("#000000");
public static Color Blanc { get; private set; } = Color.FromArgb("#FFFFFF");
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{ {
if (value is not Indicateur) return "black"; if (value is not Indicateur) return Noir;
switch (value) switch (value)
{ {
case Indicateur.BonnePlace: case Indicateur.BonnePlace:
return "black"; return Noir;
case Indicateur.BonneCouleur: case Indicateur.BonneCouleur:
return "white"; return Blanc;
default: default:
return "black"; return Noir;
} }
} }

@ -124,6 +124,9 @@
<MauiXaml Update="Vues\ImageResultatVue.xaml"> <MauiXaml Update="Vues\ImageResultatVue.xaml">
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</MauiXaml> </MauiXaml>
<MauiXaml Update="Vues\IndicateurVue.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Vues\JetonVue.xaml"> <MauiXaml Update="Vues\JetonVue.xaml">
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</MauiXaml> </MauiXaml>

@ -14,8 +14,9 @@
<Image Grid.Row="1" Source="star.png" WidthRequest="100" HorizontalOptions="Start" VerticalOptions="Center" Margin="0"/> <Image Grid.Row="1" Source="star.png" WidthRequest="100" HorizontalOptions="Start" VerticalOptions="Center" Margin="0"/>
</FlexLayout> </FlexLayout>
<Grid RowDefinitions="*" ColumnDefinitions="*"> <Grid RowDefinitions="*" ColumnDefinitions="*,*">
<Button x:Name="ReglesClassiques" Text="ReglesClassiques" Style="{StaticResource ButtonClassementRegle}" Clicked="QuandBoutonPresse"/> <Button x:Name="ReglesClassiques" Text="Régles Classiques" Style="{StaticResource ButtonClassementRegle}" Clicked="QuandBoutonPresse"/>
<Button Grid.Column="1" x:Name="ReglesDifficiles" Text="Régles Difficiles" Style="{StaticResource ButtonClassementRegle}" Clicked="QuandBoutonPresse"/>
</Grid> </Grid>
<Border Margin="20" StrokeThickness="2" StrokeShape="RoundRectangle 10"> <Border Margin="20" StrokeThickness="2" StrokeShape="RoundRectangle 10">

@ -121,6 +121,12 @@ namespace MauiSpark.Pages
return; return;
} }
if (sender == ReglesDifficiles)
{
classement.Regles = new ReglesDifficiles();
return;
}
if (classement.TypeTri == nameof(sender)) { if (classement.TypeTri == nameof(sender)) {
classement.Inverser = !classement.Inverser; classement.Inverser = !classement.Inverser;
return; return;

@ -7,7 +7,7 @@
<Grid <Grid
ColumnDefinitions="*" ColumnDefinitions="*"
RowDefinitions="*, *"> RowDefinitions="*, *,*">
<vues:TitreVue Texte="mode de jeu"/> <vues:TitreVue Texte="mode de jeu"/>
@ -16,5 +16,10 @@
Grid.Row="1" Grid.Row="1"
Text="Règles classiques" Text="Règles classiques"
Clicked="QuandReglesPresse"/> Clicked="QuandReglesPresse"/>
<Button
x:Name="ReglesDifficiles"
Grid.Row="2"
Text="Règles difficiles"
Clicked="QuandReglesPresse"/>
</Grid> </Grid>
</ContentPage> </ContentPage>

@ -18,6 +18,8 @@ public partial class ModePage : ContentPage
if (sender.Equals(ReglesClassiques)) if (sender.Equals(ReglesClassiques))
partie = MauiProgram.Manageur.NouvellePartie(new ReglesClassiques()); partie = MauiProgram.Manageur.NouvellePartie(new ReglesClassiques());
else if (sender.Equals(ReglesDifficiles))
partie = MauiProgram.Manageur.NouvellePartie(new ReglesDifficiles());
else else
return; return;

@ -36,11 +36,14 @@
<BindableLayout.ItemTemplate> <BindableLayout.ItemTemplate>
<DataTemplate> <DataTemplate>
<Label Text="O"/> <vues:IndicateurVue Couleur="{Binding ., Converter={StaticResource IndicateurVersCouleurMAUI}}"
VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand"/>
</DataTemplate> </DataTemplate>
</BindableLayout.ItemTemplate> </BindableLayout.ItemTemplate>
</StackLayout> </StackLayout>
<StackLayout <StackLayout
Orientation="Horizontal" Orientation="Horizontal"
Grid.Column="1" Grid.Column="1"

@ -9,7 +9,12 @@
<ScrollView> <ScrollView>
<StackLayout> <StackLayout>
<vues:TitreVue Texte="Règles"/> <vues:TitreVue Texte="Règles"/>
<Grid RowDefinitions="*,*" ColumnDefinitions="*,*">
<vues:IndicateurVue Couleur="White" WidthRequest="100" HeightRequest="100" />
<Label Grid.Row="1" FontSize="Medium" Text="Cette indicateur indique une bonne couleur" HorizontalOptions="Center"/>
<vues:IndicateurVue Grid.Column="1" Couleur="Black" WidthRequest="100" HeightRequest="100"/>
<Label Grid.Row="1" Grid.Column="1" FontSize="Medium" Text="Cette indicateur indique une bonne place" HorizontalOptions="Center"/>
</Grid>
<StackLayout BindableLayout.ItemsSource="{Binding .}"> <StackLayout BindableLayout.ItemsSource="{Binding .}">
<BindableLayout.ItemTemplate> <BindableLayout.ItemTemplate>
<DataTemplate> <DataTemplate>

@ -14,12 +14,18 @@ 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." 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() private static readonly Regles reglesDifficiles = new Regles()
{
Titre = "Règles difficiles",
Description = "Le but du jeu est de découvrir la combinaison. On génère aléatoirement deux combinaisons de 6 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 6 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()
{ {
NavigationPage.SetHasNavigationBar(this, false); NavigationPage.SetHasNavigationBar(this, false);
BindingContext = (Regles[])[ BindingContext = (Regles[])[
reglesClassiques reglesClassiques,reglesDifficiles
]; ];
InitializeComponent(); InitializeComponent();

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiSpark.Vues.IndicateurVue"
x:Name="indicateurVue">
<Grid
x:Name="Grid"
SizeChanged="QuandTailleChangee"
VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand">
<Rectangle
x:Name="Carre"
Fill="{Binding Couleur, Source={x:Reference indicateurVue}}">
</Rectangle>
</Grid>
</ContentView>

@ -0,0 +1,28 @@
using CoreLibrary.Core;
using MauiSpark.Convertisseurs;
using System.Globalization;
namespace MauiSpark.Vues;
public partial class IndicateurVue : ContentView
{
public static readonly BindableProperty CouleurProperty = BindableProperty.Create(nameof(Couleur), typeof(Color), typeof(IndicateurVue), default(Color));
public Color Couleur
{
get => (Color)GetValue(CouleurProperty);
set => SetValue(CouleurProperty, value);
}
public IndicateurVue()
{
InitializeComponent();
BindingContext = this;
}
private void QuandTailleChangee(object sender, EventArgs e)
{
double taille = Math.Min(Grid.Width, Grid.Height) / 2;
Carre.WidthRequest = Carre.HeightRequest = taille;
}
}
Loading…
Cancel
Save