47 lines
1.6 KiB
C#
47 lines
1.6 KiB
C#
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();
|
||
}
|
||
}
|