Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }