using BowlingLib.Model; using BowlingMaping; using Business; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BowlingApp { /// /// This class is used to create a match /// public static class Match { #region Méthodes /// /// Match en Solo /// /// public static void JeuSolo(Saissiseur saissiseur) { Afficheur.InviteNom("Joueur"); string Nom = saissiseur.CollecteNom(); Joueur joueur = new Joueur(Nom); Partie partie = new Partie(joueur); Manager manager = new Manager(new EquipeDbDataManager(), new PartieDbDataManager(), new JoueurDbDataManager()); LancerBoulle(partie, saissiseur); joueur.AddPartie(partie); manager.AddJoueur(joueur); } /// /// Match en Individuel /// /// public static void JeuIndividuel(Saissiseur saissiseur) { Manager manager = new Manager(new EquipeDbDataManager(), new PartieDbDataManager(), new JoueurDbDataManager()); Afficheur.InviteNrb("Joueur"); int nbrj = saissiseur.CollecteNbr(); List joueurs = new List(); List partiees = new List(); // Création des joueurs et leur partie for (int j = 0; j < nbrj; j++) { Afficheur.InviteNom($"Joueur {j + 1}"); string nomJoueur = saissiseur.CollecteNom(); // Nom d'un joueur Joueur joueur = new Joueur(nomJoueur); Partie partie = new Partie(joueur); joueurs.Add(joueur); partiees.Add(partie); } // Lancement pour chaque partie avce 10 frames for (int j = 0; j < 10; j++) // { for (int i = 0; i < partiees.Count; i++) // on lance les parties à tour de rôle { Frame frame = new Frame(j + 1); Afficheur.InviteNomJoueur(joueurs[i].Pseudo); LancerFrame(partiees.ElementAt(i), saissiseur, frame); } } for (int i = 0; i < joueurs.Count; i++) { joueurs[i].AddPartie(partiees[i]); manager.AddJoueur(joueurs[i]); } } /// /// Match en Equipe /// /// public static void JeuxEnEquipe(Saissiseur saissiseur) { Manager manager = new Manager(new EquipeDbDataManager(), new PartieDbDataManager(), new JoueurDbDataManager()); Afficheur.InviteNrb("Equipe"); int nbrE = saissiseur.CollecteNbr(); Afficheur.InviteNrb("Joueur par Equipe"); int nbrJ = saissiseur.CollecteNbr(); List equipes = new List(); for (int i = 0; i < nbrE; i++) { Afficheur.InviteNom($"Equipe {i + 1}");//Recuperer le nom de l'equipe string Nom = saissiseur.CollecteNom(); Equipe equipe = new Equipe(Nom); for (int j = 0; j < nbrJ; j++) { Console.WriteLine($"Equipe {i + 1}"); Afficheur.InviteNom($"Joueur {j + 1}"); //Recuperer le nom des joueur de chaque Equipe string nomJoueur = saissiseur.CollecteNom(); Joueur joueur = new Joueur(nomJoueur); equipe.AjouterJoueur(joueur); } equipes.Add(equipe); } // Lancement pour chaque partie avce 10 frames for (int j = 0; j < 10; j++) // { for (int i = 0; i /// Faire des lancers /// /// /// /// Faire des lancers avec des frames spécifiques /// /// /// /// private static void LancerFrame(Partie partie, Saissiseur saissiseur, Frame frame) { Afficheur.AfficheNumFrame(frame.Numero); Afficheur.InviteQuilleTombe(1); frame.Lancer(saissiseur.CollectQuilleTomber()); if (!frame.IsStrike) { Afficheur.InviteQuilleTombe(2); frame.Lancer(saissiseur.CollectQuilleTomber()); } //Faire le troisième lancé si et seulement si il s'agit d'un strike ou spare if (frame.Numero == 10 && (frame.IsStrike || frame.IsSpare)) { Afficheur.InviteQuilleTombe(3); frame.Lancer(saissiseur.CollectQuilleTomber()); } partie.AddFrame(frame); Console.WriteLine(partie.GetScore());//affichage du score à la fin de chaque frame } #endregion /// /// Match en Equipe /// /// //public static void JeuxEnEquipe(Saissiseur saissiseur) //{ // for (int i = 0; i < equipes.Count; i++) // { // for (int j = 0; j < equipes[i].Joueurs.Count; j++) // { // Joueur joueur = equipes[i].Joueurs[j]; // Partie partie = new Partie(joueur); // manager.AddJoueur(joueur); // LancerBoulle(partie, saissiseur); // manager.AddPartie(partie); // } // } //} } }