Ajout d'une correction possible
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
using MiniJeuxFinal.Games.PierrePapierCiseaux.Actions;
|
||||
|
||||
namespace MiniJeuxFinal.Games.PierrePapierCiseaux.Factories
|
||||
{
|
||||
public interface IActionPpcFactory
|
||||
{
|
||||
IActionPpc GetAction(IList<IActionPpc> action);
|
||||
}
|
||||
}
|
||||
@@ -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];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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];
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user