// lancer une nouvelle partie
        public void NouvellePartie()
        {
            // instanciation
            _engin = new EnginDeCartes();
            List <List <Carte> > deuxPaquets = _engin.RetourneDeuxPaquets();

            _cartesJoueur         = deuxPaquets[0];
            _cartesOrdi           = deuxPaquets[1];
            _etatJeu              = EtatsJeu.Normal;
            _cartesBatailleJoueur = new List <Carte>();
            _cartesBatailleOrdi   = new List <Carte>();
        }
 // constructeur
 public Jeubataille()
 {
     // au départ '_etatJeu' est en 'AttenteNouvellePartie'
     _etatJeu = EtatsJeu.AttenteNouvellePartie;
 }
        public void JouerUnTour()
        {
            if (_etatJeu != EtatsJeu.Normal && _etatJeu != EtatsJeu.Bataille)
            {
                return;
            }

            if (_etatJeu == EtatsJeu.Normal)
            {
                if (_cartesJoueur.Count == 0)
                {
                    _etatJeu            = EtatsJeu.Termine;
                    _gagnantDernierTour = TypesJoueur.Ordi;
                    return; // pour sortir de la méthode 'JouerUnTour()'
                }
                if (_cartesOrdi.Count == 0)
                {
                    _etatJeu            = EtatsJeu.Termine;
                    _gagnantDernierTour = TypesJoueur.Joueur;
                    return; // pour sortir de la méthode 'JouerUnTour()'
                }

                _engin.JouerCarte(_cartesJoueur, ref _carteEnCoursJoueur);
                _engin.JouerCarte(_cartesOrdi, ref _carteEnCoursOrdi);

                if (_carteEnCoursJoueur.Valeur == _carteEnCoursOrdi.Valeur)
                {
                    _etatJeu             = EtatsJeu.Bataille;
                    _valeurCarteBataille = _carteEnCoursJoueur.Valeur;
                }
                else if (_carteEnCoursJoueur.Valeur > _carteEnCoursOrdi.Valeur)
                {
                    _engin.PlacerCarteSousPaquet(ref _carteEnCoursOrdi, _cartesJoueur);
                    _engin.PlacerCarteSousPaquet(ref _carteEnCoursJoueur, _cartesJoueur);
                    _gagnantDernierTour = TypesJoueur.Joueur;
                }
                else
                {
                    _engin.PlacerCarteSousPaquet(ref _carteEnCoursJoueur, _cartesOrdi);
                    _engin.PlacerCarteSousPaquet(ref _carteEnCoursOrdi, _cartesOrdi);
                    _gagnantDernierTour = TypesJoueur.Ordi;
                }
            }

            else if (_etatJeu == EtatsJeu.Bataille)
            {
                if (_cartesJoueur.Count == 0 && _cartesOrdi.Count == 0)
                {
                    if (_dernierAvecDesCartes == TypesJoueur.Joueur)
                    {
                        _engin.DeplacerPaquetDessous(_cartesBatailleJoueur, _cartesJoueur);
                        _engin.DeplacerPaquetDessous(_cartesBatailleOrdi, _cartesJoueur);
                    }
                    else
                    {
                        _engin.DeplacerPaquetDessous(_cartesBatailleJoueur, _cartesOrdi);
                        _engin.DeplacerPaquetDessous(_cartesBatailleOrdi, _cartesOrdi);
                    }
                }

                else if (_cartesJoueur.Count > 0 && _cartesOrdi.Count > 0)
                {
                    _engin.DeplacerCarteDessusDessus(_cartesJoueur, _cartesBatailleJoueur);
                    _engin.DeplacerCarteDessusDessus(_cartesOrdi, _cartesBatailleOrdi);
                }

                else if (_cartesJoueur.Count == 0)
                {
                    _engin.DeplacerCarteDessusDessus(_cartesOrdi, _cartesBatailleJoueur);
                    _engin.DeplacerCarteDessusDessus(_cartesOrdi, _cartesBatailleOrdi);
                    _dernierAvecDesCartes = TypesJoueur.Ordi;
                }
                else

                if (_cartesOrdi.Count == 0)
                {
                    _engin.DeplacerCarteDessusDessus(_cartesJoueur, _cartesBatailleJoueur);
                    _engin.DeplacerCarteDessusDessus(_cartesJoueur, _cartesBatailleOrdi);
                    _dernierAvecDesCartes = TypesJoueur.Joueur;
                }

                _carteEnCoursJoueur = _cartesBatailleJoueur[0];
                _carteEnCoursOrdi   = _cartesBatailleOrdi[0];

                if (_carteEnCoursJoueur.Valeur == _valeurCarteBataille)
                {
                    _engin.DeplacerPaquetDessous(_cartesBatailleJoueur, _cartesJoueur);
                    _engin.DeplacerPaquetDessous(_cartesBatailleOrdi, _cartesJoueur);
                    _engin.PlacerCarteSousPaquet(ref _carteEnCoursJoueur, _cartesJoueur);
                    _engin.PlacerCarteSousPaquet(ref _carteEnCoursOrdi, _cartesJoueur);
                    _etatJeu             = EtatsJeu.Normal;
                    _valeurCarteBataille = 0;
                }
                else if (_carteEnCoursOrdi.Valeur == _valeurCarteBataille)
                {
                    _engin.DeplacerPaquetDessous(_cartesBatailleJoueur, _cartesOrdi);
                    _engin.DeplacerPaquetDessous(_cartesBatailleOrdi, _cartesOrdi);
                    _engin.PlacerCarteSousPaquet(ref _carteEnCoursJoueur, _cartesOrdi);
                    _engin.PlacerCarteSousPaquet(ref _carteEnCoursOrdi, _cartesOrdi);
                    _etatJeu             = EtatsJeu.Normal;
                    _valeurCarteBataille = 0;
                }
            }
        }