private void btn_ShowClassement_Click(object sender, EventArgs e) { // Liste des joueurs List <Joueur> Participants; List <Joueur> Classement; // Element pour l'affichage et les calculs int Ronde, Adv; int i, j, TeteDeSerie, V, N, D; float Pts = 0, Buchh = 0, SoBerg = 0; float Buchh_A_Ajouter = 0, SoBerg_A_Ajouter = 0; // Prend le nombre de joueur int NbParticipants; // Prise de la liste de depart Participants = Tournoi.ChargerListe(); // Prise du nombre de joueur NbParticipants = Tournoi.Joueurs_Totaux(); // Retrié par n° de départ du joueur, pour que le calcul s'effectue correctement TriParNdeDepart(Participants, NbParticipants); // Effacer toutes les cases du tableau (par précaution) dataGridView1.Rows.Clear(); // Remise à 0 du buchholz et du SoBerg de tous les joueurs (si plusieurs appuis sur le bouton classement, il ne doit pas y avoir de changements) for (i = 0; i < (NbParticipants); i++) { // Effacer Participants[i].MAJ_Buchh(0); Participants[i].MAJ_SoBerg(0); } // Effectuer le calcul du Buchholtz et de la somme de Buchholtz de tous les joueurs dans la gestion du classement // parce que ceux-ci évolue selon le tournoi des joueurs adverses // Prend le nombre de rondes Ronde = Tournoi.Ronde_Jouee(); for (j = 1; j <= Ronde; j++) { // D'abord mettre à jour tous les buchholtz avant les SoBerg for (i = 0; i < (NbParticipants); i++) { // Va chercher l'adversaire du joueur (-1 car le joueur tête de série n°1 à l'indice 0) Adv = (Participants[i].Adv_To_Return(j)) - 1; // Mise à jour du buchholtz à ajouter Buchh_A_Ajouter = Participants[Adv].PointsJoueur(); // Va chercher le buccholtz actuel du joueur Buchh = Participants[i].BuchhJoueur(); // Remet à jour le buchholtz du joueur Participants[i].MAJ_Buchh(Buchh_A_Ajouter + Buchh); } } for (j = 1; j <= Ronde; j++) { // Et on refait la même opération pour les SoBerg for (i = 0; i < (NbParticipants); i++) { // Va chercher l'adversaire du joueur (-1 car le joueur tête de série n°1 à l'indice 0) Adv = (Participants[i].Adv_To_Return(j)) - 1; // Mise à jour du soberg à ajouter SoBerg_A_Ajouter = Participants[Adv].BuchhJoueur(); // Va chercher le soberg actuel du joueur SoBerg = Participants[i].SoBergJoueur(); // Remet à jour le soberg du joueur Participants[i].MAJ_SoBerg(SoBerg_A_Ajouter + SoBerg); } } // Copie de la liste des participants dans la zone prévue pour l'affichage du classement Classement = Participants; // Génération du classement et tri selon le nombre de points / Bucch / SoBerg et Victoire des joueurs TriClassement(Classement, NbParticipants); // Génération du tableau for (i = 0; i < (NbParticipants); i++) { // Elements à afficher TeteDeSerie = Classement[i].n_Depart_Du_JoueurLoad(); V = Classement[i].VictoireJoueur(); N = Classement[i].NulJoueur(); D = Classement[i].DefaiteJoueur(); Pts = Classement[i].PointsJoueur(); Buchh = Classement[i].BuchhJoueur(); SoBerg = Classement[i].SoBergJoueur(); // Mise à jour du rang final du joueur Classement[i].MAJ_RangFinal(i + 1); // Création des lignes pour le classement string[] row = new string[] { (i + 1).ToString(), TeteDeSerie.ToString(), Classement[i].nom + " " + Classement[i].prenom, Classement[i].club, Classement[i].ELO.ToString(), Classement[i].Titre, V.ToString(), N.ToString(), D.ToString(), Pts.ToString(), Buchh.ToString(), SoBerg.ToString() }; dataGridView1.Rows.Add(row); } // Enregistrer la liste Tournoi.SaveListe(Participants); // Faire apparaître le bouton pour un classement complet btn_ShowClassementDetaille.Show(); // Faire apparaitre le bouton pour extraire sur csv btn_csv1.Show(); }
private void btn_ShowClassementDetaille2_Click(object sender, EventArgs e) { // Liste des joueurs List <Joueur> Participants; List <Joueur> Classement; // Element pour l'affichage et les calculs int Ronde, Adv, Pos; int i, j, TeteDeSerie; float Pts, Buchh, SoBerg; // Prend le nombre de joueur int NbParticipants; // Vider le tableau dataGridView1.Rows.Clear(); // Prise de la liste de depart Participants = Tournoi.ChargerListe(); // Prise du nombre de joueur NbParticipants = Tournoi.Joueurs_Totaux(); // Effectuer le calcul du Buchholtz et de la somme de Buchholtz de tous les joueurs dans la gestion du classement // parce que ceux-ci évolue selon le tournoi des joueurs adverses // Prend le nombre de rondes Ronde = Tournoi.Ronde_Jouee(); // On retrie par n° de départ pour prendre les positions finales de chaque joueur TriParNdeDepart(Participants, NbParticipants); // Prendre les adversaires selon leurs classements for (i = 0; i < (NbParticipants); i++) { // Prise de la valeur de chaque adversaire / chaque couleur et chaque resultat pour chaque ronde for (j = 1; j <= Ronde; j++) { // Prise de l'adversaire (son n° indice) Adv = (Participants[i].Adv_To_Return(j)) - 1; // Remplacer la valeur de l'adversaire ==> l'indice devient son classement final Pos = Participants[Adv].RangFinal(); Participants[i].MAJ_n_adversaire(Pos, j); } } // Copie de la liste des participants dans la zone prévue pour l'affichage du classement Classement = Participants; // On retrie selon la position TriParPosition(Classement, NbParticipants); // Génération du tableau for (i = 0; i < (NbParticipants); i++) { // Prise de la valeur de chaque adversaire / chaque couleur et chaque resultat pour chaque ronde for (j = 1; j <= Ronde; j++) { // Prise de l'adversaire (son n° de classement FINAL) Adv = (Participants[i].Adv_To_Return(j)) - 1; nbAdversaire[j - 1] = Participants[Adv].RangFinal(); // Prise de la couleur if ((Participants[i].Couleur_To_Return(j) == 0)) { // 0 = noir ==> mise de S (Schwarz) nbCouleur[j - 1] = 'S'; } else { // 1 = blanc ==> mise de W (Weiss) nbCouleur[j - 1] = 'W'; } // Prise du résultat nbResultat[j - 1] = Participants[i].Resultat_To_Return(j); // Mettre tout ça dans un string Ronde_Texte[i, j - 1] = nbAdversaire[j - 1].ToString() + nbCouleur[j - 1].ToString() + nbResultat[j - 1].ToString(); } // Pour les rondes non jouées (pour y mettre des cases 'X' pour indiqué une ronde non jouée for (j = (Ronde + 1); j <= 11; j++) { Ronde_Texte[i, j - 1] = "X"; } // Elements à afficher TeteDeSerie = Classement[i].n_Depart_Du_JoueurLoad(); Pts = Classement[i].PointsJoueur(); Buchh = Classement[i].BuchhJoueur(); SoBerg = Classement[i].SoBergJoueur(); // Création des lignes pour le classement string[] row = new string[] { (i + 1).ToString(), TeteDeSerie.ToString(), Classement[i].nom + " " + Classement[i].prenom, Classement[i].club, Classement[i].ELO.ToString(), Classement[i].Titre, Ronde_Texte[i, 0], Ronde_Texte[i, 1], Ronde_Texte[i, 2], Ronde_Texte[i, 3], Ronde_Texte[i, 4], Ronde_Texte[i, 5], Ronde_Texte[i, 6], Ronde_Texte[i, 7], Ronde_Texte[i, 8], Ronde_Texte[i, 9], Ronde_Texte[i, 10], Pts.ToString(), Buchh.ToString(), SoBerg.ToString() }; dataGridView1.Rows.Add(row); } // Faire disparaitre le bouton pour afficher le classement détaillé (pour éviter un bug de remise de valeur incompréhensible) btn_ShowClassementDetaille2.Hide(); // Faire apparaitre le bouton pour extraire sur csv btn_csv2.Show(); }