diff --git a/Sources/ConsoleApp1/ConsoleApp1.csproj b/Sources/ConsoleApp1/ConsoleApp1.csproj new file mode 100644 index 0000000..2150e37 --- /dev/null +++ b/Sources/ConsoleApp1/ConsoleApp1.csproj @@ -0,0 +1,10 @@ + + + + Exe + net8.0 + enable + enable + + + diff --git a/Sources/ConsoleApp1/Program.cs b/Sources/ConsoleApp1/Program.cs new file mode 100644 index 0000000..460e52d --- /dev/null +++ b/Sources/ConsoleApp1/Program.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; + +class Program +{ + static void Main() + { + // Récupérer le chemin du dossier AppData de l'utilisateur + string appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + + // Définir le chemin du dossier "mastermind" dans AppData + string mastermindPath = Path.Combine(appDataPath, "Mastermind"); + + // Vérifier si le dossier existe, et s'il n'existe pas, le créer + if (!Directory.Exists(mastermindPath)) + { + Directory.CreateDirectory(mastermindPath); + Console.WriteLine("Le dossier 'mastermind' a été créé dans AppData."); + } + else + { + Console.WriteLine("Le dossier 'mastermind' existe déjà dans AppData."); + } + } +} diff --git a/Sources/CoreLibrary/Partie.cs b/Sources/CoreLibrary/Partie.cs index 5e648b1..5cc4a2a 100644 --- a/Sources/CoreLibrary/Partie.cs +++ b/Sources/CoreLibrary/Partie.cs @@ -11,9 +11,10 @@ namespace CoreLibrary /// Représente une partie de jeu. /// [DataContract] + [KnownType(typeof(ReglesClassiques))] public class Partie : IEstPersistant { - + [DataMember] public IRegles Regles { get; private set; } [DataMember] diff --git a/Sources/CoreLibrary/Persistance/PersistanceJSON.cs b/Sources/CoreLibrary/Persistance/PersistanceJSON.cs index 7d8ea93..f41a8c3 100644 --- a/Sources/CoreLibrary/Persistance/PersistanceJSON.cs +++ b/Sources/CoreLibrary/Persistance/PersistanceJSON.cs @@ -9,18 +9,14 @@ namespace CoreLibrary.Persistance public T[] Charger() where T : IEstPersistant { - string dossierAvant = Directory.GetCurrentDirectory(); + string fichier = $"{typeof(T).Name.ToLower()}s.json"; - string dossier = Path.Combine(dossierAvant, "../../../.."); - string fichier = $"{typeof(T).Name}.json"; + Directory.SetCurrentDirectory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../../../../..")); - - bool c = Directory.Exists(dossier); - - if (!c) + if (!Directory.Exists("Fichiers")) return []; - Directory.SetCurrentDirectory(dossier); + Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "Fichiers")); if (!File.Exists(fichier)) return []; @@ -38,13 +34,14 @@ namespace CoreLibrary.Persistance public void Enregistrer(T[] elements) where T : IEstPersistant { - string dossier = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Mastermind"); - string fichier = $"{typeof(T).Name}.json"; + string fichier = $"{typeof(T).Name.ToLower()}s.json"; + + Directory.SetCurrentDirectory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../../../../..")); - if (!Directory.Exists(dossier)) - Directory.CreateDirectory(dossier); + if (!Directory.Exists("Fichiers")) + Directory.CreateDirectory("Fichiers"); - Directory.SetCurrentDirectory(dossier); + Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "Fichiers")); DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T[])); diff --git a/Sources/CoreLibrary/Regles/IRegles.cs b/Sources/CoreLibrary/Regles/IRegles.cs index 54776bf..aea134c 100644 --- a/Sources/CoreLibrary/Regles/IRegles.cs +++ b/Sources/CoreLibrary/Regles/IRegles.cs @@ -1,4 +1,6 @@  +using System.Runtime.Serialization; + namespace CoreLibrary.Regles { /// diff --git a/Sources/CoreLibrary/Regles/ReglesClassiques.cs b/Sources/CoreLibrary/Regles/ReglesClassiques.cs index 8da48f6..ca65851 100644 --- a/Sources/CoreLibrary/Regles/ReglesClassiques.cs +++ b/Sources/CoreLibrary/Regles/ReglesClassiques.cs @@ -18,7 +18,7 @@ namespace CoreLibrary.Regles /// Le nombre maximum de tour. /// [DataMember] - public int TourMaximum { get => 2; } + public int TourMaximum { get => 12; } /// /// La taille maximale d'un code. diff --git a/Sources/MauiSpark/App.xaml.cs b/Sources/MauiSpark/App.xaml.cs index f0e41c0..d4ef4dc 100644 --- a/Sources/MauiSpark/App.xaml.cs +++ b/Sources/MauiSpark/App.xaml.cs @@ -1,6 +1,4 @@ -using CoreLibrary.Manager; -using CoreLibrary.Persistance; -using MauiSpark.Pages; +using MauiSpark.Pages; namespace MauiSpark { @@ -10,7 +8,7 @@ namespace MauiSpark { InitializeComponent(); - MainPage = new NavigationPage(new Accueil()); + MainPage = new NavigationPage(new AccueilPage()); MainPage.Title = "Mastermind"; } } diff --git a/Sources/MauiSpark/MauiSpark.csproj b/Sources/MauiSpark/MauiSpark.csproj index 62af975..2047be7 100644 --- a/Sources/MauiSpark/MauiSpark.csproj +++ b/Sources/MauiSpark/MauiSpark.csproj @@ -67,7 +67,19 @@ - + + AccueilPage.xaml + + + ModePage.xaml + + + PlateauPage.xaml + + + + + MSBuild:Compile @@ -76,10 +88,10 @@ MSBuild:Compile - + MSBuild:Compile - + MSBuild:Compile @@ -94,6 +106,18 @@ MSBuild:Compile + + MSBuild:Compile + + + MSBuild:Compile + + + MSBuild:Compile + + + MSBuild:Compile + diff --git a/Sources/MauiSpark/Pages/Accueil.xaml b/Sources/MauiSpark/Pages/Accueil.xaml deleted file mode 100644 index e8b196a..0000000 --- a/Sources/MauiSpark/Pages/Accueil.xaml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - -