Page règles
continuous-integration/drone/push Build is failing Details

master
Céleste BARBOSA 11 months ago
commit 2f571a940d

@ -5,13 +5,12 @@ namespace MauiSpark.Convertisseurs
{
public class CouleurVersCouleurMAUI : IValueConverter
{
public static Color Rouge { get; private set; } = Color.FromRgb(255, 0, 0);
public static Color Vert { get; private set; } = Color.FromRgb(0, 255, 0);
public static Color Bleu { get; private set; } = Color.FromRgb(0, 0, 255);
public static Color Jaune { get; private set; } = Color.FromRgb(255, 255, 0);
public static Color Noir { get; private set; } = Color.FromRgb(0, 0, 0);
public static Color Blanc { get; private set; } = Color.FromRgb(255, 255, 255);
public static Color Rouge { get; private set; } = Color.FromArgb("#F75353");
public static Color Vert { get; private set; } = Color.FromArgb("#53F769");
public static Color Bleu { get; private set; } = Color.FromArgb("#535AF3");
public static Color Jaune { get; private set; } = Color.FromArgb("#E9FE67");
public static Color Noir { get; private set; } = Color.FromArgb("#241E1E");
public static Color Blanc { get; private set; } = Color.FromArgb("#FFFFFF");
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{

@ -0,0 +1,20 @@
using System.Globalization;
namespace MauiSpark.Convertisseurs
{
public class TexteVersTexteMajuscule : IValueConverter
{
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is not string)
return "";
return ((string)value).ToUpper();
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

@ -76,6 +76,9 @@
<Compile Update="Pages\PlateauPage.xaml.cs">
<DependentUpon>PlateauPage.xaml</DependentUpon>
</Compile>
<Compile Update="Pages\ReglesPage.xaml.cs">
<DependentUpon>ReglesPage.xaml</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
@ -94,7 +97,7 @@
<MauiXaml Update="Pages\PlateauPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Pages\Regle.xaml">
<MauiXaml Update="Pages\ReglesPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Pages\TableauScore.xaml">
@ -109,9 +112,15 @@
<MauiXaml Update="Vues\BoutonReglesVue.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Vues\ImageResultatVue.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Vues\JetonVue.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Vues\ReglesVue.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Vues\TitreVue.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>

@ -37,7 +37,6 @@ internal class Tour
}
}
public partial class PlateauPage : ContentPage
{
private Code? code;
@ -102,6 +101,6 @@ public partial class PlateauPage : ContentPage
private async void QuandReglesClique(object sender, EventArgs e)
{
await Navigation.PushAsync(new Regle());
await Navigation.PushAsync(new ReglesPage());
}
}

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiSpark.Pages.Regle"
xmlns:pages="clr-namespace:MauiSpark.Pages"
Title="Regle">
<ScrollView>
<VerticalStackLayout>
<FlexLayout Direction="Row" JustifyContent="SpaceAround" AlignContent="Center" VerticalOptions="Center" Margin="10, 50" >
<Image Source="livre.png" WidthRequest="100" HorizontalOptions="End" VerticalOptions="Center" Margin="0"/>
<Label Text="Règles" Style="{StaticResource TexteTitre}" Margin="0" />
<Image Grid.Row="1" Source="livre.png" WidthRequest="100" HorizontalOptions="Start" VerticalOptions="Center" Margin="0"/>
</FlexLayout>
<Frame Margin="40">
<Grid ColumnDefinitions="*,auto">
<Label Text="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."
Style="{StaticResource TexteFrame}" />
</Grid>
</Frame>
</VerticalStackLayout>
</ScrollView>
</ContentPage>

@ -1,11 +0,0 @@
namespace MauiSpark.Pages;
public partial class Regle : ContentPage
{
public Regle()
{
NavigationPage.SetHasNavigationBar(this, false);
InitializeComponent();
}
}

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiSpark.Pages.ReglesPage"
xmlns:pages="clr-namespace:MauiSpark.Pages"
xmlns:vues="clr-namespace:MauiSpark.Vues"
Title="ReglesPage">
<ScrollView>
<StackLayout>
<vues:TitreVue Texte="Règles"/>
<StackLayout BindableLayout.ItemsSource="{Binding .}">
<BindableLayout.ItemTemplate>
<DataTemplate>
<vues:ReglesVue Titre="{Binding Titre}" Description="{Binding Description}" Margin="10"/>
</DataTemplate>
</BindableLayout.ItemTemplate>
</StackLayout>
</StackLayout>
</ScrollView>
</ContentPage>

@ -0,0 +1,29 @@
namespace MauiSpark.Pages;
internal class Regles
{
public string Titre { get; init; } = "";
public string Description { get; init; } = "";
}
public partial class ReglesPage : ContentPage
{
private static readonly Regles reglesClassiques = new Regles()
{
Titre = "Règles classiques",
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()
{
NavigationPage.SetHasNavigationBar(this, false);
BindingContext = (Regles[])[
reglesClassiques,
reglesClassiques,
reglesClassiques
];
InitializeComponent();
}
}

@ -4,6 +4,7 @@
xmlns:pages="clr-namespace:MauiSpark.Pages"
x:Class="MauiSpark.Pages.TableauScore"
Title="TableauScore">
<ScrollView>
<VerticalStackLayout>
<FlexLayout Direction="Row" JustifyContent="SpaceAround" AlignContent="Center" VerticalOptions="Center" Margin="10, 50" >

@ -3,17 +3,33 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiSpark.Pages.Victoire"
xmlns:pages="clr-namespace:MauiSpark.Pages"
xmlns:vues="clr-namespace:MauiSpark.Vues"
Title="Victoire">
<VerticalStackLayout>
<Grid WidthRequest="80" Margin="20"></Grid>
<FlexLayout Direction="Row" JustifyContent="SpaceAround" AlignContent="Center" VerticalOptions="Center" Margin="10" >
<Image Source="trophy.jpg" WidthRequest="100" HorizontalOptions="End" VerticalOptions="Center" Margin="0" />
<Label Text="{Binding [0]}" Style="{StaticResource TexteTitre}" Margin="0" />
<Image Source="trophy.jpg" Grid.Row="1" WidthRequest="100" HorizontalOptions="Start" VerticalOptions="Center" Margin="0" />
</FlexLayout>
<Frame Margin="40" >
<Label HorizontalOptions="Center" Text="{Binding [1]}" Style="{StaticResource TexteFrame}"/>
<Grid
ColumnDefinitions="*"
RowDefinitions="*, auto, *">
<Grid
ColumnDefinitions="*, *, *"
RowDefinitions="*">
<vues:ImageResultatVue Image="{Binding [2]}" HorizontalOptions="Start"/>
<vues:TitreVue Texte="{Binding [0]}" Grid.Column="1"/>
<vues:ImageResultatVue Image="{Binding [2]}" Grid.Column="2" HorizontalOptions="End"/>
</Grid>
<Frame Grid.Row="1">
<Label HorizontalOptions="Center" Text="{Binding [1]}"/>
</Frame>
<Button Text="Menu" VerticalOptions="End" HorizontalOptions="Center" Clicked="QuandMenuPresse"/>
</VerticalStackLayout>
<Button
Grid.Row="2"
Text="Menu"
VerticalOptions="Center"
Margin="0, 50"
Clicked="QuandMenuPresse"/>
</Grid>
</ContentPage>

@ -34,11 +34,11 @@ public partial class Victoire : ContentPage
IReadOnlyList<Joueur> perdants = e.Perdants;
if (gagnants.Count == 1)
BindingContext = ("Victoire", $"Le joueur {gagnants[0].Nom} a gagné");
BindingContext = ("Victoire", $"Le joueur {gagnants.First().Nom} a gagné", "trophy.jpg");
else if (gagnants.Count > 1)
BindingContext = ("Egalité", $"Les joueurs {string.Join(' ', gagnants.Select(joueur => joueur.Nom))} ont gagné");
BindingContext = ("Egalité", $"Les joueurs {string.Join(' ', gagnants.Select(joueur => joueur.Nom))} ont gagné", "egaliter.jpg");
else
BindingContext = ("Défaite", "Personne n'a trouvé le code...");
BindingContext = ("Défaite", "Personne n'a trouvé le code...", "defaite.png");
}
public async void QuandMenuPresse(object sender, EventArgs e)

@ -11,6 +11,6 @@ public partial class BoutonReglesVue : ContentView
private void QuandReglesClique(Object? sender, EventArgs e)
{
Navigation.PushAsync(new Regle());
Navigation.PushAsync(new ReglesPage());
}
}

@ -0,0 +1,10 @@
<?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.ImageResultatVue"
x:Name="imageResultatVue">
<Image
Source="{Binding Image, Source={x:Reference imageResultatVue}}"
WidthRequest="100"/>
</ContentView>

@ -0,0 +1,18 @@
namespace MauiSpark.Vues;
public partial class ImageResultatVue : ContentView
{
public static readonly BindableProperty ImageProperty = BindableProperty.Create(nameof(Image), typeof(string), typeof(ImageResultatVue), default(string));
public string Image
{
get => (string)GetValue(ImageProperty);
set => SetValue(ImageProperty, value);
}
public ImageResultatVue()
{
InitializeComponent();
BindingContext = this;
}
}

@ -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.ReglesVue"
x:Name="reglesVue">
<Border
StrokeThickness="2"
StrokeShape="RoundRectangle 10">
<Grid RowDefinitions="auto, auto" ColumnDefinitions="*" Margin="20">
<Label Text="{Binding Titre, Source={x:Reference reglesVue}}" FontSize="Large" Margin="0, 0, 0, 20"/>
<Label Grid.Row="1" Text="{Binding Description, Source={x:Reference reglesVue}}" FontSize="Medium"/>
</Grid>
</Border>
</ContentView>

@ -0,0 +1,26 @@
namespace MauiSpark.Vues;
public partial class ReglesVue : ContentView
{
public static readonly BindableProperty TitreProperty = BindableProperty.Create(nameof(Titre), typeof(string), typeof(ReglesVue), default(string));
public static readonly BindableProperty DescriptionProperty = BindableProperty.Create(nameof(Description), typeof(string), typeof(ReglesVue), default(string));
public string Titre
{
get => (string)GetValue(TitreProperty);
set => SetValue(TitreProperty, value);
}
public string Description
{
get => (string)GetValue(DescriptionProperty);
set => SetValue(DescriptionProperty, value);
}
public ReglesVue()
{
InitializeComponent();
BindingContext = this;
}
}

@ -2,12 +2,20 @@
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiSpark.Vues.TitreVue"
xmlns:conv="clr-namespace:MauiSpark.Convertisseurs"
x:Name="titreVue">
<Label
FontSize="Header"
Text="{Binding Texte, Source={x:Reference titreVue}}"
HorizontalTextAlignment="Center"
VerticalTextAlignment="Start"
Margin="10, 50"/>
<ContentView.Resources>
<conv:TexteVersTexteMajuscule x:Key="TexteVersTexteMajuscule"/>
</ContentView.Resources>
<ContentView.Content>
<Label
FontSize="Header"
Text="{Binding Texte, Source={x:Reference titreVue}, Converter={StaticResource TexteVersTexteMajuscule}}"
HorizontalTextAlignment="Center"
VerticalTextAlignment="Start"
Margin="10, 50"/>
</ContentView.Content>
</ContentView>

@ -4,11 +4,10 @@ public partial class TitreVue : ContentView
{
public static readonly BindableProperty TexteProperty = BindableProperty.Create(nameof(Texte), typeof(string), typeof(TitreVue), default(string));
public string Texte
{
get => (string)GetValue(TexteProperty);
set => SetValue(TexteProperty, value.ToUpper());
set => SetValue(TexteProperty, value);
}
public TitreVue()

Loading…
Cancel
Save