From a3ffe48a844a04d2b1a3817ec40ecbbd35e52d58 Mon Sep 17 00:00:00 2001 From: Grizouille Date: Mon, 8 Dec 2025 17:13:43 +0100 Subject: [PATCH] Ajout des directive --- .../Games/PierrePapierCiseaux/.gitkeep | 0 .../PierrePapierCiseaux/Actions/.gitkeep | 0 MiniJeux/MiniJeux/{ => Games/Trash}/Pendu.cs | 4 +- MiniJeux/MiniJeux/{ => Games/Trash}/Ppc.cs | 2 + MiniJeux/MiniJeux/Program.cs | 66 +------------------ MiniJeux/Tests/MiniJeux.Test/ReadMe.md | 21 ++++++ 6 files changed, 27 insertions(+), 66 deletions(-) create mode 100644 MiniJeux/MiniJeux/Games/PierrePapierCiseaux/.gitkeep create mode 100644 MiniJeux/MiniJeux/Games/PierrePapierCiseaux/Actions/.gitkeep rename MiniJeux/MiniJeux/{ => Games/Trash}/Pendu.cs (96%) rename MiniJeux/MiniJeux/{ => Games/Trash}/Ppc.cs (98%) create mode 100644 MiniJeux/Tests/MiniJeux.Test/ReadMe.md diff --git a/MiniJeux/MiniJeux/Games/PierrePapierCiseaux/.gitkeep b/MiniJeux/MiniJeux/Games/PierrePapierCiseaux/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/MiniJeux/MiniJeux/Games/PierrePapierCiseaux/Actions/.gitkeep b/MiniJeux/MiniJeux/Games/PierrePapierCiseaux/Actions/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/MiniJeux/MiniJeux/Pendu.cs b/MiniJeux/MiniJeux/Games/Trash/Pendu.cs similarity index 96% rename from MiniJeux/MiniJeux/Pendu.cs rename to MiniJeux/MiniJeux/Games/Trash/Pendu.cs index e5b8674..26fcca8 100644 --- a/MiniJeux/MiniJeux/Pendu.cs +++ b/MiniJeux/MiniJeux/Games/Trash/Pendu.cs @@ -1,5 +1,7 @@ using System; +namespace MiniJeux.Games.Trash; + public class Pendu { public Pendu() @@ -34,7 +36,7 @@ public class Pendu // Demander une lettre Console.Write("Propose une lettre : "); - var infoLettre = Console.ReadLine();//.KeyChar; + var infoLettre = Console.ReadLine(); var lettre = infoLettre[0]; diff --git a/MiniJeux/MiniJeux/Ppc.cs b/MiniJeux/MiniJeux/Games/Trash/Ppc.cs similarity index 98% rename from MiniJeux/MiniJeux/Ppc.cs rename to MiniJeux/MiniJeux/Games/Trash/Ppc.cs index e88bd59..ac80db1 100644 --- a/MiniJeux/MiniJeux/Ppc.cs +++ b/MiniJeux/MiniJeux/Games/Trash/Ppc.cs @@ -1,3 +1,5 @@ +namespace MiniJeux.Games.Trash; + public class Ppc { private static readonly Dictionary Scores = new Dictionary() diff --git a/MiniJeux/MiniJeux/Program.cs b/MiniJeux/MiniJeux/Program.cs index 3084c05..fa17099 100644 --- a/MiniJeux/MiniJeux/Program.cs +++ b/MiniJeux/MiniJeux/Program.cs @@ -1,70 +1,6 @@ -using System; -using System.Runtime.CompilerServices; - -class Program() +class Program() { - private static readonly Dictionary Scores = new Dictionary() - { - {"joueur", 0}, - {"ordi", 0} - }; - - - public static void Main() { - // new Ppc(); - new Pendu(); - // Console.WriteLine("Bienvenue dans "); - // Console.WriteLine("✊✋✌️ Pierre-Papier-Ciseaux !"); - // Console.WriteLine("Premier à 3 points gagne !"); - // PierrePapierCiseaux(); - - // // Résultat final - // Console.WriteLine($"\n{(Scores["joueur"] == 3 ? "🎉 TU AS GAGNÉ !" : "😢 L\'ordinateur a gagné...")}"); - // Console.WriteLine($"Score final : {Scores["joueur"]} - {Scores["ordi"]}"); - } - - - - private static void PierrePapierCiseaux() - { - var random = new Random(); - var choix_possibles = new[] { "pierre", "papier", "ciseaux" }; - - while (Scores["joueur"] < 3 && Scores["ordi"] < 3) - { - Console.WriteLine($"\nScore : Toi {Scores["joueur"]} - {Scores["ordi"]} Ordinateur"); - Console.WriteLine("Choisis (pierre, papier, ciseaux) : "); - var joueur = Console.ReadLine(); - - if (!choix_possibles.Contains(joueur?.ToLower())) - { - Console.WriteLine("❌ Choix invalide !"); - continue; - } - - - var ordi = random.GetItems(choix_possibles, 1).FirstOrDefault(); - Console.WriteLine($"🤖 L'ordinateur a choisi : {ordi}"); - - // Déterminer le gagnant - if (joueur == ordi) - { - Console.WriteLine("✨ Égalité !"); - } - else if ((joueur == "pierre" && ordi == "ciseaux") || - (joueur == "papier" && ordi == "pierre") || - (joueur == "ciseaux" && ordi == "papier")) - { - Console.WriteLine("✅ Tu gagnes cette manche !"); - Scores["joueur"] += 1; - } - else - { - Console.WriteLine("❌ L'ordinateur gagne cette manche !"); - Scores["ordi"] += 1; - } - } } } diff --git a/MiniJeux/Tests/MiniJeux.Test/ReadMe.md b/MiniJeux/Tests/MiniJeux.Test/ReadMe.md new file mode 100644 index 0000000..d6f2745 --- /dev/null +++ b/MiniJeux/Tests/MiniJeux.Test/ReadMe.md @@ -0,0 +1,21 @@ +# But du jeu + +## 1. Utiliser le projet MiniJeuBourin pour: + +* Créer une interface (IActionPpc) commune pour les `actions` (pierre, papier, ciseaux) (Name, bool ToWin(other)) +* Implémenter les classes `actions` en utilisant TDD. +* Créer une factory pour le choix auto de l'ordinateur +* Créer une autre factory pour faciliter le choix de l'utilisateur grace à des nombres (1:pierre,2:papier...) +* Implémenter le Program pour mettre en place le jeu. + +## 2. Les Mocks dans les tests + +* Utiliser FakeItEasy pour simuler l'entrée/sortie dans la console +* Modifier les tests existant + +## 3. Ajouter un 2eme jeu *Le Pendu* + +* Ajouter une interface commune pour tous les jeux (IGame (Name, Start, Stop)) +* Ajouter une classe `PierrePapierCiseaux` à la solution en TDD en implémentant `IGame`. +* Ajouter le jeu *LePendu* à la solution en TDD en implémentant `IGame`. +* Création d'un menu pour séléctionner le jeu (doit etre auto !) \ No newline at end of file