예제 #1
0
파일: Joueur.cs 프로젝트: bbert9/Mixmo
 public void Add(string mot)
 {
     ListeMotsTrouves.Add(mot);
 }
예제 #2
0
파일: Joueur.cs 프로젝트: bbert9/Mixmo
        /// <summary>
        /// Si on veut poser un mots on passe par cette méthode qui verifie si le mots est un mots du dico
        /// si celui ci est un motscroisée valable
        /// si les lettres correpondantes au mots sont des lettre du joueur.
        /// </summary>
        /// <param name="mots"></param>
        /// <param name="Position"></param>
        /// <param name="UnMot"></param>
        /// <param name="Jeu1"></param>
        /// <param name="r"></param>
        public void PoserUnMot(string mots, string[] Position, MotsCroises UnMot, Jeu Jeu1, Random r) //a partir de l'entree mettre une lettre dans la grille.
        {
            Lettre JOKER           = new Lettre('§', 0);                                              //C'est mon joker
            bool   ContientUnJoker = false;
            string NouveauMots     = "";
            int    NbJokers        = 0;

            for (int o = 0; o < 2; o++)     //au cas ou la personne ait 2 jokers On verfie Deux fois
            {
                for (int l = 0; l < mots.Length; l++)
                {
                    if (mots[l] == '(')     //si j'utilises un joker je mets des () autour de la lettre remplacée
                    {
                        if (mots[l + 2] == ')')
                        {
                            for (int z = 0; z < mots.Length; z++) //il y a un joker
                            {
                                if (z != l && z != l + 2)         //on reforme le mots sans les ().
                                {
                                    NbJokers       += 1;
                                    ContientUnJoker = true;
                                    NouveauMots    += mots[z];
                                }
                            }
                            mots = NouveauMots;     //pour ne pas avoir les ().
                        }
                    }
                }
            }     // on verfie les Jokers
            if (ContientUnJoker)
            {
                mots = NouveauMots;
            }
            UnMot.MotsGrille.Add(mots);



            //une fonction pour verifier que le mot est bon
            bool result = OteLettre(mots, ContientUnJoker, NbJokers, Position); //3 verifications ici.

            if (UnMot.EstUnMotCroisee(mots, Position) && UnMot.EstUnMotDuDictionnaire() && result)
            {
                int poid;         //correspond au poid de la lettre en question
                int PoidMots = 0; //corresponds poid du mots
                Console.WriteLine("le mots est " + mots);
                for (int i = 0; i < mots.Length; i++)
                {
                    if (mots[i] == 'X' || mots[i] == 'Y' || mots[i] == 'Z' || mots[i] == 'W' || mots[i] == 'K')
                    {
                        poid = 5;
                    }
                    else
                    {
                        poid = 0;
                    }
                    Lettre UneLettre = new Lettre(mots[i], poid);
                    PoidMots += poid;
                    if (Position[2].ToUpper() == "H")//on pose le mots sur la grille
                    {
                        GrilleMatrice[int.Parse(Position[0]) - 1, int.Parse(Position[1]) - 1 + i] = UneLettre;
                    }
                    if (Position[2].ToUpper() == "V")
                    {
                        GrilleMatrice[int.Parse(Position[0]) - 1 + i, int.Parse(Position[1]) - 1] = UneLettre;
                    }
                }
                Console.WriteLine($"Le poid du mot est {PoidMots}");
                List <string> Mots = new List <string>();
                Mots.Add(mots);
                ListeMotsTrouves.Add(mots);
                CalculScore();
            }
            else
            {
                Console.WriteLine("ERREUR => NON POSSIBLE"); //une des 3 verifications a renvoyé false
                UnMot.MotsGrille.Remove(mots);               //on actualise
                ListeMotsTrouves.Remove(mots);
            }
            Add_Lettres(2, Jeu1.LaPioche, r); //un tour est effectué, on ajoute deux lettre au joueur en cours
            Console.WriteLine($"Nouveau Score = {this.Score}");
            //si le mots est valable
            AfficherGrille();
        }