Пример #1
0
 /// <summary>
 /// Rempli le mot spécifié
 /// </summary>
 /// <param name="mot"></param>
 /// <param name="bd"></param>
 /// <param name="nbEssaisMaxPourMot"></param>
 /// <param name="afficher"></param>
 public void RemplirMot(Mot mot, Bd bd, int nbEssaisMaxPourMot, bool afficher)
 {
     listeMotsPossibles = bd.ListeMotsPossibles(mot.Contenu);
     for (int j = 0, nbMotsPossibles = listeMotsPossibles.Count; j < nbEssaisMaxPourMot && j < nbMotsPossibles; j++)
     {
         int rnd = Random.Range(0, nbMotsPossibles - 1);
         mot.EnregistrerMot(listeMotsPossibles[rnd], bd);
         if (mot.ExistentMotsTransversaux(bd))
         {
             //Debug.Log("Ai écris " + mot.Contenu);
             mot.MarquerCommeRempli(listeMotsPossibles[rnd], 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);
             listeMotsPossibles.RemoveAt(rnd);
             nbMotsPossibles--;
         }
     }
 }
Пример #2
0
 /// <summary>
 /// Retire un mot spécifié de la grille
 /// </summary>
 /// <param name="motARetirer"></param>
 /// <param name="grille"></param>
 /// <param name="bd"></param>
 /// <param name="afficher"></param>
 public void RetirerMot(Mot motARetirer, Grille grille, Bd bd, bool afficher)
 {
     if (motARetirer != null)
     {
         motARetirer.EffacerMot(bd);
         if (afficher)
         {
             motARetirer.AfficherMot();
         }
         grille.listeMotsARemplir.Add(motARetirer);
         motARetirer.CalculerScore();
         motARetirer.CalculerScoreDesMotsTransversaux();
     }
 }
Пример #3
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);
         }
     }
 }