/// <summary> /// Met à jour les resultats du matche /// </summary> public static void DeclarerMatch(ClubModel club, MatchModel m, bool resultat) { m.ClubEstVainqueur = resultat; m.EstAJouer = false; if (m is MatchDoubleModel) { MatchDoubleModel matchdouble = m as MatchDoubleModel; CompetiteurModel competiteur1 = matchdouble.ListejoueurDuClub[0]; CompetiteurModel competiteur2 = matchdouble.ListejoueurDuClub[1]; competiteur1.MatchesJoue.Add(matchdouble); competiteur2.MatchesJoue.Add(matchdouble); MiseAJourStatJoueur(club, competiteur1, matchdouble); MiseAJourStatJoueur(club, competiteur2, matchdouble); } else { MatchSimpleModel matchSimple = m as MatchSimpleModel; CompetiteurModel competiteur = matchSimple.JoueurDuClub; competiteur.MatchesJoue.Add(matchSimple); MiseAJourStatJoueur(club, competiteur, matchSimple); } }
/// <summary> /// Determine les matches à jouer pour une competition en remplissant la liste des matches de la competition /// </summary> public static BindingList <MatchModel> InitialisationMatch(CompetitionModel c) { Random random = new Random(); int j = random.Next(0, c.NombreDeJoueurParEquipe); int NombreDeMatchDouble; // Le nombre de match double qui serront potentiellement joué BindingList <MatchModel> MatchAJouer = new BindingList <MatchModel> { }; List <CompetiteurModel> JoueurDejaPlacerClub = new List <CompetiteurModel> { }; // Liste contenant les joueurs qui sont deja placé sur un match de la competition if (c.NombreDeJoueurParEquipe > c.EquipeDuClub.ListeDeJoueur.Count) // Si l'équipe n'a pas assez de joueur { return(MatchAJouer); } if (c.EstDouble) // Si la competition est double { NombreDeMatchDouble = (c.NombreDeJoueurParEquipe / 2); for (int i = 0; i < NombreDeMatchDouble; i++) // On créer les matches doubles à jouer { CompetiteurModel joueurClub = SelectioneJoueur(c.EquipeDuClub); // On selectionne deux joueurs de l'equipe du Club au hasard CompetiteurModel joueurClub2 = SelectioneJoueur(c.EquipeDuClub); while (JoueurDejaPlacerClub.Contains(joueurClub2)) // On regarde si ils sont déja placé sur un match { joueurClub2 = SelectioneJoueur(c.EquipeDuClub); } JoueurDejaPlacerClub.Add(joueurClub2); while (JoueurDejaPlacerClub.Contains(joueurClub)) { joueurClub = SelectioneJoueur(c.EquipeDuClub); } JoueurDejaPlacerClub.Add(joueurClub); // On les considere comme déja sur un match MatchDoubleModel md = new MatchDoubleModel(c.EquipeDuClub, c.EquipeAdverse, joueurClub, joueurClub2); MatchAJouer.Add(md); } CompetiteurModel joueur = SelectioneJoueur(c.EquipeDuClub); while (JoueurDejaPlacerClub.Contains(joueur)) // On place le joueur restant sur le match simple { joueur = SelectioneJoueur(c.EquipeDuClub); } MatchSimpleModel matchSimple = new MatchSimpleModel(c.EquipeDuClub, c.EquipeAdverse, joueur); MatchAJouer.Add(matchSimple); } else { for (int i = 0; i < c.NombreDeJoueurParEquipe; i++) // On creer les Matches Simple sur le meme principe que pour les matches doubles { CompetiteurModel joueur = SelectioneJoueur(c.EquipeDuClub); while (JoueurDejaPlacerClub.Contains(joueur)) { joueur = SelectioneJoueur(c.EquipeDuClub); } JoueurDejaPlacerClub.Add(joueur); MatchSimpleModel matchSimple = new MatchSimpleModel(c.EquipeDuClub, c.EquipeAdverse, joueur); MatchAJouer.Add(matchSimple); } } return(MatchAJouer); }