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 !"); } } }
public FormSub1() { InitializeComponent(); Demarrage = true; BTN_Ronde_suivante.Hide(); }