Ajout d'une correction possible

This commit is contained in:
Grizouille
2025-12-12 09:10:08 +01:00
parent 6e2c554af9
commit 7cec5696dc
28 changed files with 828 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
using MiniJeuxFinal.Games.PierrePapierCiseaux.Actions;
namespace MiniJeuxFinal.Games.PierrePapierCiseaux.Factories
{
public interface IActionPpcFactory
{
IActionPpc GetAction(IList<IActionPpc> action);
}
}

View File

@@ -0,0 +1,33 @@
using MiniJeuxFinal.Games.PierrePapierCiseaux.Actions;
using MiniJeuxFinal.Wrappers;
namespace MiniJeuxFinal.Games.PierrePapierCiseaux.Factories
{
public class InputActionFactory : IActionPpcFactory
{
private readonly IConsole _console;
public InputActionFactory(IConsole console)
{
_console = console;
}
public IActionPpc GetAction(IList<IActionPpc> action)
{
_console.WriteLine("Choisis (pierre, papier, ciseaux) : ");
for (int i = 0; i < action.Count; i++)
Console.WriteLine($"{i}: {action[i].Name}");
var result = _console.ReadLine();
if (!int.TryParse(result, out var shootId) || shootId >= action.Count)
{
_console.WriteLine("❌ Choix invalide !");
return GetAction(action);
}
return action[shootId];
}
}
}

View File

@@ -0,0 +1,17 @@
using MiniJeuxFinal.Games.PierrePapierCiseaux.Actions;
namespace MiniJeuxFinal.Games.PierrePapierCiseaux.Factories
{
public class RandomActionFactory : IActionPpcFactory
{
private static Random rnd = new Random();
public IActionPpc GetAction(IList<IActionPpc> action)
{
int n = rnd.Next(action.Count);
return action[n];
}
}
}