Ejemplo n.º 1
0
        private void BTN_Ronde_suivante_Click(object sender, EventArgs e)
        {
            // Ronde maximale
            int Ronde_Max = Tournoi.Ronde_Max();
            // Pirse du numero de tête de série du joueur
            int TeteDeSerie_Blanc, TeteDeSerie_Noir;
            // Prise du résultat de chaque joueur
            double ResultatBlanc, ResultatNoir;
            int    Indice_Colonne = 0;
            // Variable de test
            int OK = 0, OK_for_MAJ = 0;

            // Mise à jour des résultats
            Separation = Nombre_de_Joueurs / 2;
            Couleur    = 1;
            // Test pour voir si tout les champs sont remplis
            for (Echiquier_Resultat = 0; Echiquier_Resultat < Separation; Echiquier_Resultat++)
            {
                // Mets les resultats dans les strings
                try
                {
                    string resblanc = DGW_Ronde1.Rows[Echiquier_Resultat].Cells[5].Value.ToString();
                    string resnoir  = DGW_Ronde1.Rows[Echiquier_Resultat].Cells[7].Value.ToString();
                    // Incrémente la valeur seulement si les champs ne sont pas vides
                    if (resblanc != "" && resnoir != "")
                    {
                        OK++;
                    }
                }
                catch (NullReferenceException)
                {
                    // Mettre un message d'erreur
                    MessageBox.Show("Un champ non rempli à été détécté (peut s'afficher plusieurs fois si plusieurs champs vides sont détéctés !)");
                }
            }
            // Si OK est égale à Echiquier_Resultat, c'est qu'aucun champ n'est vide
            if (Echiquier_Resultat == OK)
            {
                // On peut commencer à mettre à jour
                OK_for_MAJ = 1;
            }
            // Effectuer seulement si la mise à jour n'est pas faite et que le tampon de vérification est ok
            if ((MAJ == 0) && (OK_for_MAJ == 1))
            {
                // S'il s'agit de la première ronde
                if (Ronde == 1)
                {
                    // Reprendre les joueurs des cellules et y mettre à jour leurs résultats
                    for (Echiquier_Resultat = 0; Echiquier_Resultat < Separation; Echiquier_Resultat++)
                    {
                        if (Couleur == 1)
                        {
                            // Prise des n° de tête de série
                            TeteDeSerie_Blanc = Participants[Echiquier_Resultat].n_Depart_Du_JoueurLoad();
                            TeteDeSerie_Noir  = Participants[Echiquier_Resultat + Separation].n_Depart_Du_JoueurLoad();
                            // Chargement du résultat inscrit dans le tableau
                            string resultat_blanc = DGW_Ronde1.Rows[Indice_Colonne].Cells[5].Value.ToString();
                            // Prise du résultat
                            if (resultat_blanc == "1")
                            {
                                ResultatBlanc = 1;
                                ResultatNoir  = 0;
                            }
                            else if (resultat_blanc == "0")
                            {
                                ResultatBlanc = 0;
                                ResultatNoir  = 1;
                            }
                            else
                            {
                                ResultatBlanc = 0.5;
                                ResultatNoir  = 0.5;
                            }
                            // Mise à jour des éléments du joueur (ronde, adversaire, couleur, résultat)
                            Participants[Echiquier_Resultat].Stat_Ronde(Ronde, TeteDeSerie_Noir, 1, ResultatBlanc);
                            Participants[Separation + Echiquier_Resultat].Stat_Ronde(Ronde, TeteDeSerie_Blanc, 0, ResultatNoir);
                            Couleur = 0;
                            Indice_Colonne++;
                        }
                        else
                        {
                            // Chargement des têtes de séries
                            TeteDeSerie_Blanc = Participants[Echiquier_Resultat + Separation].n_Depart_Du_JoueurLoad();
                            TeteDeSerie_Noir  = Participants[Echiquier_Resultat].n_Depart_Du_JoueurLoad();
                            // Chargement du résultat inscrit dans le tableau
                            string resultat_blanc = DGW_Ronde1.Rows[Indice_Colonne].Cells[5].Value.ToString();
                            // Prise du résultat
                            if (resultat_blanc == "1")
                            {
                                ResultatBlanc = 1;
                                ResultatNoir  = 0;
                            }
                            else if (resultat_blanc == "0")
                            {
                                ResultatBlanc = 0;
                                ResultatNoir  = 1;
                            }
                            else
                            {
                                ResultatBlanc = 0.5;
                                ResultatNoir  = 0.5;
                            }
                            // Mise à jour des éléments du joueur (ronde, adversaire, couleur, résultat)
                            Participants[Echiquier_Resultat + Separation].Stat_Ronde(Ronde, TeteDeSerie_Noir, 1, ResultatBlanc);
                            Participants[Echiquier_Resultat].Stat_Ronde(Ronde, TeteDeSerie_Blanc, 0, ResultatNoir);
                            Couleur = 1;
                            Indice_Colonne++;
                        }
                    }
                }
                // Dans le cas d'une autre ronde
                else
                {
                    // Reprendre les joueurs des cellules et y mettre à jour leurs résultats
                    for (Echiquier_Resultat = 0; Echiquier_Resultat < (Nombre_de_Joueurs - 1); Echiquier_Resultat = Echiquier_Resultat + 2)
                    {
                        // Prise des n° de tête de série
                        TeteDeSerie_Blanc = Participants[Echiquier_Resultat].n_Depart_Du_JoueurLoad();
                        TeteDeSerie_Noir  = Participants[Echiquier_Resultat + 1].n_Depart_Du_JoueurLoad();
                        // Chargement du résultat inscrit dans le tableau
                        string resultat_blanc = DGW_Ronde1.Rows[Indice_Colonne].Cells[5].Value.ToString();
                        // Prise du résultat
                        if (resultat_blanc == "1")
                        {
                            ResultatBlanc = 1;
                            ResultatNoir  = 0;
                        }
                        else if (resultat_blanc == "0")
                        {
                            ResultatBlanc = 0;
                            ResultatNoir  = 1;
                        }
                        else
                        {
                            ResultatBlanc = 0.5;
                            ResultatNoir  = 0.5;
                        }
                        // Mise à jour des éléments du joueur (ronde, adversaire, couleur, résultat)
                        Participants[Echiquier_Resultat].Stat_Ronde(Ronde, TeteDeSerie_Noir, 1, ResultatBlanc);
                        Participants[Echiquier_Resultat + 1].Stat_Ronde(Ronde, TeteDeSerie_Blanc, 0, ResultatNoir);
                        Indice_Colonne++;
                    }
                }

                MessageBox.Show("Test : MAJ Réussie");
                // Cacher le bouton "ronde suivante" et réafficher le bouton "générer ronde" pour pouvoir
                // générer la ronde suivante
                BTN_Ronde_suivante.Hide();

                // Effacer tout le tableau
                DGW_Ronde1.Rows.Clear();
                // Ajouter une ronde et repermettre la mise à jour
                Ronde++;
                // Si c'était la dernière ronde (dès que la ronde actuelle dépasse le nombre de rondes maximum)
                if (Ronde > Ronde_Max)
                {
                    MessageBox.Show("Le tournoi est terminé !\r\nCliquer sur <Classement> pour voir le classement");
                }
                else
                {
                    BTN_GenRondes.Show();
                }
                // Permet la remise à jour des rondes
                MAJ = 1;
            }
            else
            {
                // Si la mise à jour a déjà été faite
                if (MAJ == 1)
                {
                    MessageBox.Show("Mise à jour déjà éffectuée");
                }
                // Sinon (donc si le tampon de mise à jour a été refusé
                else
                {
                    MessageBox.Show("Veuillez remplir tout les champs SVP !");
                }
            }
        }
Ejemplo n.º 2
0
 public FormSub1()
 {
     InitializeComponent();
     Demarrage = true;
     BTN_Ronde_suivante.Hide();
 }