// 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; } } }