diff --git a/Sources/ConsoleApp/Evenements.cs b/Sources/ConsoleApp/Evenements.cs index 33f9151..94dbbce 100644 --- a/Sources/ConsoleApp/Evenements.cs +++ b/Sources/ConsoleApp/Evenements.cs @@ -55,6 +55,7 @@ namespace ConsoleApp public static Jeton? DemanderJeton(Object? sender, DemanderJetonEventArgs e) { Console.TreatControlCAsInput = true; + Console.CursorVisible = false; bool aChoisi = false; int indice = 0; @@ -80,21 +81,27 @@ namespace ConsoleApp break; case ConsoleKey.Escape: - return null; + if (e.Indice != 0) + { + aChoisi = true; + indice = -2; + } + break; default: break; } - if (indice < 0) + if (indice == -1) indice = couleurs.Length - 1; - else if (indice >= couleurs.Length) + else if (indice == couleurs.Length) indice = 0; } Console.TreatControlCAsInput = false; + Console.CursorVisible = true; - return new Jeton(couleurs[indice]); + return indice != -2 ? new Jeton(couleurs[indice]) : null; } /// diff --git a/Sources/CoreLibrary/Events/DemanderJetonEventArgs.cs b/Sources/CoreLibrary/Events/DemanderJetonEventArgs.cs index 41c2059..30426e5 100644 --- a/Sources/CoreLibrary/Events/DemanderJetonEventArgs.cs +++ b/Sources/CoreLibrary/Events/DemanderJetonEventArgs.cs @@ -6,5 +6,11 @@ namespace CoreLibrary.Events /// public class DemanderJetonEventArgs : EventArgs { + public int Indice { get; private set; } + + public DemanderJetonEventArgs(int indice) + { + Indice = indice; + } } } diff --git a/Sources/CoreLibrary/Partie.cs b/Sources/CoreLibrary/Partie.cs index 722a137..dc7d5f7 100644 --- a/Sources/CoreLibrary/Partie.cs +++ b/Sources/CoreLibrary/Partie.cs @@ -83,7 +83,7 @@ namespace CoreLibrary /// Méthode pour déclencher l'événement de demande d'ajout d'un jeton. /// /// Le jeton demandé - private Jeton? QuandDemanderJeton() => DemanderJeton?.Invoke(this, new DemanderJetonEventArgs()); + private Jeton? QuandDemanderJeton(int indice) => DemanderJeton?.Invoke(this, new DemanderJetonEventArgs(indice)); /// /// Méthode pour déclencher l'événement d'ajout d'un joueur. @@ -197,7 +197,7 @@ namespace CoreLibrary { while (!code.EstComplet()) { - Jeton? jeton = QuandDemanderJeton(); + Jeton? jeton = QuandDemanderJeton(code.NbJetons); if (DemanderJeton == null) {