public override Mouvement Jouer(Plateau plateau, CancellationToken annulation) { aLeTrait = true; plateauTMP = plateau; var valide = false; mouvement = null; Mouvement mouvFinal = null; while (!valide) { mouvement = null; aJoue = new TaskCompletionSource <Mouvement>(annulation); annulation.Register(() => aJoue.TrySetCanceled(annulation), true); nbDePrisesTmp = 0; try { mouvFinal = aJoue.Task.Result; } catch (AggregateException) { throw new OperationCanceledException(); } Console.WriteLine("mouv choisi"); Plateau test = new Plateau(plateau); valide = test.Effectuer(mouvFinal, EstBlanc); if (!valide) { deselectionnerToutesLesCases(); deselectionnerToutesLesCases = null; Console.WriteLine("Mouvement invalide"); } } deselectionnerToutesLesCases(); deselectionnerToutesLesCases = null; aLeTrait = false; return(mouvFinal); }
public Mouvement(Mouvement autre) { Depart = autre.Depart; Sauts = new Queue <Coords>(autre.Sauts); }