Exemplo n.º 1
0
        public void OnCaseSelectionnee(Object sender, SelectionCaseEventArg e)
        {
            if (e.Handled || !aLeTrait)
            {
                return;
            }

            if (!e.Selectionnee)
            {
                if (mouvement == null)
                {
                    var debut = new Coords((sbyte)e.X, (sbyte)e.Y);
                    if (plateauTMP.Get(debut)?.EstBlanc == EstBlanc)
                    {
                        mouvement = new Mouvement(debut);
                        Console.WriteLine("debut mouv");
                        e.Selectionnee = true;
                        deselectionnerToutesLesCases += e.Deselectionner;
                    }
                    else
                    {
                        e.Selectionnee = false;
                    }
                }
                else
                {
                    Console.WriteLine("saut " + EstBlanc);
                    Piece  piece   = plateauTMP.Get(mouvement.Depart);
                    Coords choisie = new Coords((sbyte)e.X, (sbyte)e.Y);
                    if (piece.EstSimplementValide(plateauTMP, mouvement.DernierePosition(), choisie, ref nbDePrisesTmp))
                    {
                        mouvement.Sauts.Enqueue(choisie);
                        e.Selectionnee = true;
                        deselectionnerToutesLesCases += e.Deselectionner;
                    }
                    if (mouvement.GetNbPrises(plateauTMP) == plateauTMP.GetMaxPrisesPossible(EstBlanc))
                    {
                        e.Selectionnee = false;
                        aJoue.TrySetResult(mouvement);
                    }
                }
            }
            else
            {
                mouvement = null;
                deselectionnerToutesLesCases?.Invoke();
                deselectionnerToutesLesCases = null;
                e.Selectionnee = false;
            }

            e.Handled = true;
        }
Exemplo n.º 2
0
        private void AfficherTour(bool estBlanc)
        {
            var ret = Plateau.GetMaxPrisesPossible(estBlanc);

            if (ret > 0)
            {
                ui.AfficherTour(estBlanc, "Les " + (estBlanc ? "Blancs" : "Noirs") + " doivent prendre " + ret + " pions.");
            }
            else
            {
                ui.AfficherTour(estBlanc, "C'est aux " + (estBlanc ? "Blancs" : "Noirs") + " de jouer.");
            }
        }