コード例 #1
0
 /// <summary>
 /// Retourne vrai si le programme réussi a remplir le mot spécifié en utilisant les scores des mots du dictionnaire
 /// </summary>
 /// <param name="mot"></param>
 /// <param name="bd"></param>
 /// <param name="nbEssaisMaxPourMot"></param>
 /// <param name="afficher"></param>
 public void RemplirMotSelonScore(Mot mot, Bd bd, int nbEssaisMaxPourMot, bool afficher)
 {
     listeMotsPossibles = bd.ListeMotsPossiblesTriesParScore(mot.Contenu);
     for (int j = 0, nbMotsPossibles = listeMotsPossibles.Count; j < nbEssaisMaxPourMot && j < nbMotsPossibles; j++)
     {
         int nbEchange = 0;
         while (mot.ContenusPrecedents.Contains(listeMotsPossibles[j].contenu) && nbEchange < nbMotsPossibles)
         {
             //Debug.Log("Switch sur " + listeMotsPossibles[j].contenu);
             MotDico motPossible = listeMotsPossibles[j];
             listeMotsPossibles.RemoveAt(j);
             listeMotsPossibles.Add(motPossible);
             nbEchange++;
         }
         if (nbEchange >= nbMotsPossibles)
         {
             //Debug.Log("Clear");
             mot.ContenusPrecedents.Clear();
         }
         mot.EnregistrerMot(listeMotsPossibles[j], bd);
         if (mot.ExistentMotsTransversaux(bd))
         {
             //Debug.Log("Ai écris " + mot.Contenu);
             mot.MarquerCommeRempli(listeMotsPossibles[j], bd, true);
             if (afficher)
             {
                 mot.AfficherMot();
             }
             break;
         }
         else
         {
             //Debug.Log("Ai tenté d'écrire " + mot.Contenu + " mais pas de mots transversaux existants");
             mot.EffacerMot(bd);
         }
     }
 }