using MiniJeuxFinal.Games; using MiniJeuxFinal.Games.PierrePapierCiseaux; using MiniJeuxFinal.Games.PierrePapierCiseaux.Actions; using MiniJeuxFinal.Games.PierrePapierCiseaux.Factories; using MiniJeuxFinal.Games.PierrePapierCiseaux.Players; using MiniJeuxFinal.Wrappers; class Program() { public static void Main() { Console.WriteLine("Entrer votre nom de joueur:"); var userName = Console.ReadLine(); var player = new PlayerPpc(userName, new InputActionFactory(new ConsoleService())); var computer = new PlayerPpc("Ordi", new RandomActionFactory()); IAction[] lstActions = [new StoneAction(), new PaperAction(), new ScissorsAction()]; player.AddAction(lstActions); computer.AddAction(lstActions); var game = new PierrePapierCiseauxGame(3, player, computer); game.TurnStarted += (sender, tuple) => { Console.WriteLine($"Tu joues : {tuple.playerChoice}"); Console.WriteLine($"L’ordinateur joue : {tuple.computerChoice}"); }; game.TurnEnded += (sender, result) => { Thread.Sleep(2000); Console.Clear(); if (result.winner == null) Console.WriteLine($"Egalitée !"); else Console.WriteLine($"{result.winner.Name} gagne la manche"); Console.WriteLine(); Console.WriteLine($"Score : {result.players[0]} - {result.players[1]}"); Console.WriteLine(); }; game.GameEnded += (sender, result) => { Console.WriteLine($"{result.winner.Name} AS GAGNÉ ! 🎉🎉🎉"); Console.WriteLine($"Score final : {result.winner.Score} - {result.players.FirstOrDefault(_ => _.Name != result.winner.Name)?.Score}"); }; Console.WriteLine(game.Name); Console.WriteLine(); game.Start(); } }