//regroupement des methodes pour initialiser une partie public async Task startPartie(List <Joueur> listeJoueurs, PaquetDepot paquetD, PaquetPioche paquetP, Paquet paquet) { //Instanciation pour les tests, a enlever apres. Joueur joueur; int nbJoueurs = listeJoueurs.Count; //Rempli le paquet de cartes de toutes les cartes du jeu. paquet.Remplir(); //Brasse les cartes. paquet.Brasser(10000); //Distribue les cartes aux joueurs. paquet.DistribuerCartes(listeJoueurs); //Retourne une carte de départ sur le paquet de Dépot. paquetD.DeposerCarte(paquet.GetCarte()); //Envoi les cartes a la fonction RemplirPioche qui remplit le paquetP. paquetP.RemplirPioche(paquet.GetPaquet()); //Vide le paquet. paquet.Vider(); //Choisi le premier joueur à jouer. joueur = JoueurDepart(listeJoueurs, nbJoueurs); //Creer une methode tour qui entre en argument le premier joueur. Jouer(joueur, listeJoueurs, paquetD, paquetP); }
//Determine s'il faut rebrasser le paquet. public static void GererPige(PaquetPioche paquetP, PaquetDepot paquetD, Joueur joueur) { Carte carte; if (paquetD.GetTop() > 0 && paquetP.GetNbCartes() == 0) { Console.WriteLine("Le paquet est vide. Il va donc être rebrassé."); Carte[] cartes = paquetD.GetPaquet(); int top = paquetD.GetTop(); paquetP.TransfererPaquet(cartes, top); paquetD.Vider(); paquetP.Brasser(10000); joueur.Pige(paquetP.GetCarte()); } else if (paquetD.GetTop() == 0 && paquetP.GetNbCartes() == 0) { Console.WriteLine("Vous ne pouvez pas piger de carte."); } else if (paquetP.GetNbCartes() > 0) { carte = paquetP.GetCarte(); if (carte == null) { Console.WriteLine("Erreur. Le joueur ne peut pas piger"); } else { Console.WriteLine("Le joueur a pigé."); joueur.Pige(carte); } } }
public Joueur(string nom, string pnom, PaquetDepot paquetD, PaquetPioche paquetP) { this.nom = nom; this.pnom = pnom; this.paquetD = paquetD; this.paquetP = paquetP; }
//Joueur joueur, int carteChoisi, PaquetDepot paquetD, PaquetPioche paquetP, string couleur public static Carte BotChoisiCarte(Joueur joueur, PaquetDepot paquetD) { bool ok; for (int i = 0; i < joueur.NbCartes(); i++) { ok = VerifierCarte(joueur, i, paquetD); if (ok == true) { return(joueur.GetCarte(i)); } } return(null); }
//Constructeur d'une partie public Partie(List <Joueur> listeJoueur, PaquetDepot depot, PaquetPioche pioche) { this.listeJoueur = listeJoueur; this.depot = depot; this.pioche = pioche; Random rand = new Random(); indexJoueur = rand.Next(0, nbJoueurs); nbJoueurs = listeJoueur.Count; //Inscrire les abonnées for (int i = 0; i < nbJoueurs; i++) { this.CardPlayed += listeJoueur[i].OnCardPlayed; } }
public static bool VerifierCarte(Joueur joueur, int carteChoisi, PaquetDepot paquetD) { int valet = joueur.GetCarte(carteChoisi).GetValeur(); if (valet == 11) { return(true); } else if (joueur.GetCarte(carteChoisi).GetCouleur() == paquetD.VoirCarte().GetCouleur() || joueur.GetCarte(carteChoisi).GetValeur() == paquetD.VoirCarte().GetValeur()) { return(true); } else { return(false); } }
public static void Jouer(Joueur joueur, List <Joueur> listeJoueurs, PaquetDepot paquetD, PaquetPioche paquetP) { Carte carte; int index = listeJoueurs.IndexOf(joueur); bool gameover = false; while (!gameover) { try { joueur = listeJoueurs.ElementAt(index); Console.WriteLine("------------------------------------------------------------------------------"); Console.WriteLine("\nC'est le tour à " + joueur.ToString() + "\n"); Console.WriteLine("La dernière carte jouée est: " + paquetD.VoirCarte().ToString()); Console.WriteLine("Voici votre paquet: \n" + joueur.GetMain()); //await Task.Delay(3000); //Le bot choisi sa carte à jouer. carte = BotChoisiCarte(joueur, paquetD); if (carte == null) { GererPige(paquetP, paquetD, joueur); } else { joueur.JouerCarte(carte); } index = Tour(listeJoueurs, index); gameover = joueur.Gagnant(); } catch (Exception e) { Console.WriteLine(e.Message); } } Console.WriteLine("Le gagnant est: {0}!\n", joueur.ToString()); }
//Menu secondaire. On choisi le nombre de personnes dans la partie. static void MenuSecondaire() { int choix; bool on = true; while (on) { PaquetPioche paquetP = new PaquetPioche(); PaquetDepot paquetD = new PaquetDepot(); Paquet paquet = new Paquet(); Joueur joueur1 = new Joueur("", "", paquetD, paquetP); Joueur joueur2 = new Joueur("", "", paquetD, paquetP); Joueur joueur3 = new Joueur("", "", paquetD, paquetP); Joueur joueur4 = new Joueur("", "", paquetD, paquetP); List <Joueur> listeJoueurs = new List <Joueur>(); listeJoueurs.Clear(); Partie partie = new Partie(); Console.WriteLine("Entrez le nombre de joueurs: "); Console.WriteLine("1 - Deux joueurs"); Console.WriteLine("2 - Trois Joueurs"); Console.WriteLine("3 - Quatre Joueurs"); Console.WriteLine("4 - Quitter"); try { choix = Int32.Parse(Console.ReadLine()); switch (choix) { case 1: for (int i = 1; i <= 2; i++) { Console.WriteLine("Joueur #" + i); if (i == 1) { Console.WriteLine("Quel est votre nom?"); joueur1.SetNom(Console.ReadLine()); Console.WriteLine("Quel est votre prénom?"); joueur1.SetPnom(Console.ReadLine()); } else { Console.WriteLine("Quel est votre nom?"); joueur2.SetNom(Console.ReadLine()); Console.WriteLine("Quel est votre prénom?"); joueur2.SetPnom(Console.ReadLine()); } } listeJoueurs.Add(joueur1); listeJoueurs.Add(joueur2); break; case 2: for (int i = 1; i <= 3; i++) { Console.WriteLine("Joueur #" + i); if (i == 1) { Console.WriteLine("Quel est votre nom?"); joueur1.SetNom(Console.ReadLine()); Console.WriteLine("Quel est votre prénom?"); joueur1.SetPnom(Console.ReadLine()); } else if (i == 2) { Console.WriteLine("Quel est votre nom?"); joueur2.SetNom(Console.ReadLine()); Console.WriteLine("Quel est votre prénom?"); joueur2.SetPnom(Console.ReadLine()); } else { Console.WriteLine("Quel est votre nom?"); joueur3.SetNom(Console.ReadLine()); Console.WriteLine("Quel est votre prénom?"); joueur3.SetPnom(Console.ReadLine()); } } listeJoueurs.Add(joueur1); listeJoueurs.Add(joueur2); listeJoueurs.Add(joueur3); //ajouter trois joueurs. break; case 3: for (int i = 1; i <= 4; i++) { Console.WriteLine("Joueur #" + i); if (i == 1) { Console.WriteLine("Quel est votre nom?"); joueur1.SetNom(Console.ReadLine()); Console.WriteLine("Quel est votre prénom?"); joueur1.SetPnom(Console.ReadLine()); } else if (i == 2) { Console.WriteLine("Quel est votre nom?"); joueur2.SetNom(Console.ReadLine()); Console.WriteLine("Quel est votre prénom?"); joueur2.SetPnom(Console.ReadLine()); } else if (i == 3) { Console.WriteLine("Quel est votre nom?"); joueur3.SetNom(Console.ReadLine()); Console.WriteLine("Quel est votre prénom?"); joueur3.SetPnom(Console.ReadLine()); } else { Console.WriteLine("Quel est votre nom?"); joueur4.SetNom(Console.ReadLine()); Console.WriteLine("Quel est votre prénom?"); joueur4.SetPnom(Console.ReadLine()); } } listeJoueurs.Add(joueur1); listeJoueurs.Add(joueur2); listeJoueurs.Add(joueur3); listeJoueurs.Add(joueur4); //ajouter quatre joueurs. break; case 4: Environment.Exit(0); break; default: Console.WriteLine("Vous devez entrer un chiffre entre 1 et 4"); break; } } catch { Console.WriteLine("Entrée invalide."); } partie.startPartie(listeJoueurs, paquetD, paquetP, paquet); } }
//Menu secondaire. On choisi le nombre de personnes dans la partie. static void MenuSecondaire() { int choix; bool on = true; while (on) { PaquetPioche paquetP = new PaquetPioche(); PaquetDepot paquetD = new PaquetDepot(); Joueur joueur1 = new Joueur("", "", paquetD, paquetP); Joueur joueur2 = new Joueur("", "", paquetD, paquetP); Joueur joueur3 = new Joueur("", "", paquetD, paquetP); Joueur joueur4 = new Joueur("", "", paquetD, paquetP); List <Joueur> listeJoueurs = new List <Joueur>(); listeJoueurs.Clear(); Console.WriteLine("Entrez le nombre de joueurs: "); Console.WriteLine("1 - Deux joueurs"); Console.WriteLine("2 - Trois Joueurs"); Console.WriteLine("3 - Quatre Joueurs"); Console.WriteLine("4 - Quitter"); try { choix = Int32.Parse(Console.ReadLine()); switch (choix) { case 1: listeJoueurs.Add(joueur1); listeJoueurs.Add(joueur2); entrerJoueur(listeJoueurs); break; case 2: listeJoueurs.Add(joueur1); listeJoueurs.Add(joueur2); listeJoueurs.Add(joueur3); entrerJoueur(listeJoueurs); break; case 3: listeJoueurs.Add(joueur1); listeJoueurs.Add(joueur2); listeJoueurs.Add(joueur3); listeJoueurs.Add(joueur4); entrerJoueur(listeJoueurs); break; case 4: Environment.Exit(0); break; default: Console.WriteLine("Vous devez entrer un chiffre entre 1 et 4"); break; } } catch { Console.WriteLine("Entrée invalide."); } Partie partie = new Partie(listeJoueurs, paquetD, paquetP); partie.startPartieAsync(); } }