Exemple #1
0
        /// <summary>
        /// Otelettre est un verificateur qui m'autorise ou non a poser un mots. Cette methode prends en parametre
        /// Le nb de jokers d'un joueur et si il en a. Elle retire les lettres correspondants au mots posé.
        /// </summary>
        /// <param name="mot"></param>
        /// <param name="ContientUnJoker"></param>
        /// <param name="NbJokers"></param>
        /// <returns></returns>
        public bool OteLettre(string mot, bool ContientUnJoker, int NbJokers, string[] Position) //enleve une lettre au joueur.
        {
            bool   result = true;
            Lettre var    = new Lettre(char.Parse("a"), 0);
            int    NombreLettresManquantes = 0;

            if (ContientUnJoker)
            {
                for (int i = 0; i < mot.Length; i++)
                {
                    var.Symbole = mot[i];
                    int index = ListeLettres.FindIndex(x => x.Symbole == mot[i]); //un peu de linq qui m'est tres utile.
                    if (index > -1)
                    {
                        ListeLettres.RemoveAt(index);
                    }
                    else
                    {
                        NombreLettresManquantes += 1;
                        int index1 = ListeLettres.FindIndex(x => x.Symbole == '§');
                        ListeLettres.RemoveAt(index1);
                    }
                    if (NombreLettresManquantes > NbJokers)
                    {
                        return(false);
                    }
                }
                return(true);
            }
            if (!ContientUnJoker)
            {
                List <Lettre> LettresEnlevees = new List <Lettre>(); //on remet les lettres si le mot nest pas valide
                for (int i = 0; i < mot.Length; i++)
                {
                    int index = ListeLettres.FindIndex(x => x.Symbole == mot[i]); //un peu de linq qui m'est tres utile.
                    if (index != -1)
                    {
                        LettresEnlevees.Add(ListeLettres[index]);
                        ListeLettres.RemoveAt(index);
                    }
                    else if (GrilleMatrice[int.Parse(Position[0]) - 1, int.Parse(Position[1]) - 1].Symbole == mot[i])
                    {
                        //La lettre n'est pas dans le plateau du joueur car elle est deja dans la grille.
                    }
                    else
                    {
                        for (int k = 0; k < LettresEnlevees.Count; k++)
                        {
                            ListeLettres.Add(LettresEnlevees[k]);
                        }
                        return(false);
                    }
                }
                return(result);
            }
            else
            {
                return(true);
            }
        }
Exemple #2
0
        /// <summary>
        /// Pour ajouter une lettre on prend un index random dans la pioche est on preleve la lettre a cette index
        /// On la rajoute a la liste de lettre du joueur.
        /// </summary>
        /// <param name="nb"></param>
        /// <param name="pioche"></param>
        /// <param name="r"></param>
        /// <returns></returns>
        public bool Add_Lettres(int nb, Lettres pioche, Random r)
        //tire au hasard un nb de letttres dans la pioche
        {
            for (int i = 0; i < nb; i++)
            {
                int index = r.Next(pioche.Pioche.Count); //la pioche est une liste
                ListeLettres.Add(pioche.Pioche[index]);
                pioche.Pioche.RemoveAt(index);           //on enleve ce quon a pioché a la Pioche.
            }

            return(true);
        }