/// <summary> /// Verification des informations de connexion /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_SeConnecter_Click(object sender, EventArgs e) { //Hash du mot de passer insérer par l'utilisateur pour comparer avec la base de données var hash = (new SHA1Managed()).ComputeHash(Encoding.UTF8.GetBytes(tb_mdp.Text)); string mdpSha1 = string.Join("", hash.Select(b => b.ToString("x2")).ToArray()); //Initialisation de la classe dbConnexion dbConnexion nc_dbConnexion = new dbConnexion(); List <getCompteAdmin> lst_getCompteAdmin = new List <getCompteAdmin>(); lst_getCompteAdmin = nc_dbConnexion.getCompteAdmin(); //Verifier si les informations sont correctes if (lst_getCompteAdmin[0].conIdentifiant == tb_identifiant.Text && lst_getCompteAdmin[0].conMotDePasse == mdpSha1) { FormNew formNewWord = new FormNew(); formNewWord.Show(); this.Close(); } else { MessageBox.Show("Erreur de l'identifiant ou du mot de passe.", "Incorrect", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Après avoir choisi le thème /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ChoixTheme(object sender, EventArgs e) { //Remettre les points à zéro int_point = 0; //Initialisation de la classe dbconnexion dbConnexion fm_connexion = new dbConnexion(); //Recuperer le thème séléctionné par l'utilisateur string str_theme = ((Button)sender).Text; //Appel de la fonction getTheme pour recuperer le "ID" du thème choisi string idtheme = fm_connexion.getTheme(str_theme); //Appel de la fonction getMotOfTheme pour recuperer tous les mots du thème choisi lst_motOfTheme = fm_connexion.getMotOfTheme(idtheme); //Connaître la taille de la liste de mots int int_lenghtList = lst_motOfTheme.Count(); //Appel du premier mot if (lst_motOfTheme.Count == 0) { MessageBox.Show("Le thème que vous avez choisi ne contient aucun mot. Veuillez-choisir un autre thème.", "Aucun mot", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { //Appel de la fonction pour créer l'interface de jeu CreateGame(); showImages(Convert.ToString(lst_motOfTheme[int_motSuivant].idmot), lst_motOfTheme[int_motSuivant].mot); } }
/// <summary> /// Fonction qui gère les images avec le mot en cours /// Partie affichage graphique /// </summary> /// <param name="mot">Mot en cours</param> private void showImages(string idmot, string mot) { //enlever l'ancienne réponse tb_reponse.Text = "Réponse ?"; //Initialisation de variables pour le mélange des lettres Random rnd = new Random(); char temp; List <char> chars = mot.ToList(); Random rdm = new Random(); for (int i = 0; i < 3; i++) { char tmp_char = (char)rdm.Next('a', 'z'); chars.Add(tmp_char); } //Boucle pour mélanger les lettres du mot aléatoirement for (int i = 0; i < chars.Count; i++) { int j = rnd.Next(0, chars.Count - 1); temp = chars[i]; chars[i] = chars[j]; chars[j] = temp; } //Récuperer le tableau de lettres dans une chaine de caractère string str_MotMelange = new string(chars.ToArray()); //Affichage des lettres mélangées dans la richTextBox rtb_MotAleatoire.Text = str_MotMelange; rtb_MotAleatoire.SelectAll(); rtb_MotAleatoire.SelectionFont = new Font("TimesNewRoman", 18, FontStyle.Bold); rtb_MotAleatoire.SelectionAlignment = HorizontalAlignment.Center; //Initialisation de la classe dbconnexion dbConnexion si_connexion = new dbConnexion(); //Récuperer la liste des images du mot List <getImageMot> lst_imageOfMot = si_connexion.getImageOfMot(Convert.ToString(idmot)); //Récuperer le lien des images pb_ima1.ImageLocation = lst_imageOfMot[0].lienImage; pb_ima2.ImageLocation = lst_imageOfMot[1].lienImage; pb_ima3.ImageLocation = lst_imageOfMot[2].lienImage; pb_ima4.ImageLocation = lst_imageOfMot[3].lienImage; //Passer au mot suivant int_motSuivant++; }
/// <summary> /// Lorsque l'utilisateur clique sur le bouton ajouter /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_ajouter_Click(object sender, EventArgs e) { //Verification du mot if (tb_mot.Text == "" || rgx.IsMatch(tb_mot.Text) || rgx2.IsMatch(tb_mot.Text)) { MessageBox.Show("Veuillez inserer un mot de plus de un caractère contenant uniquement des lettres.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { //Si le mot contient bien 4 images if (lv_lienImage.Items.Count == 4) { //Initialisation de la classe dbConnexion dbConnexion fn_connexion = new dbConnexion(); int idtheme = cb_theme.SelectedIndex + 1; //Verifier si le mot existe déjà string existMot = fn_connexion.getMot(tb_mot.Text); //Si le mot n'est pas dans la base de données if (existMot == "") { //Appel de la fonction pour inserer le nouveau mot string idmot = fn_connexion.insertMot(tb_mot.Text, Convert.ToString(idtheme)); //Copier les images dans un répertoire spécifique for (int i = 0; i < lv_lienImage.Items.Count; i++) { //Récuperer le nouveau mot string str_mot = tb_mot.Text; //Répertoire ou l'image sera copier string str_destination = @".\images\" + str_mot + "" + int_noImage + ".png"; int_noImage++; //Copie de l'image dans le répertoire if (!File.Exists(str_destination)) { File.Copy(Convert.ToString(lv_lienImage.Items[i].Text), str_destination); fn_connexion.insertImage(str_destination, idmot); } } MessageBox.Show("Votre mot a bien été inséré dans la base de données.", "Terminé", MessageBoxButtons.OK, MessageBoxIcon.Information); tb_mot.Text = ""; cb_theme.SelectedIndex = 0; lv_lienImage.Items.Clear(); } //Si le mot est dans la base de données else { MessageBox.Show("Le mot que vous souhaitez insérer existe déjà dans la base de données.", "Mot existant", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("Veuillez inserer 4 images.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }