/// <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); } }
/// <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); }