Ejemplo n.º 1
0
 /// <summary>
 /// Enregistre une valeur dans le mot courant (mais ne le marque pas immédiatement comme rempli)
 /// </summary>
 /// <param name="motDico"></param>
 /// <param name="bd"></param>
 public void EnregistrerMot(MotDico motDico, Bd bd)
 {
     for (int i = 0; i < this.taille; i++)
     {
         listeLettres[i].EnregistrerLettre(motDico.contenu.Substring(i, 1).ToUpper());
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Marque le mot courant comme rempli
 /// </summary>
 /// <param name="motDico"></param>
 /// <param name="bd"></param>
 public void MarquerCommeRempli(MotDico motDico, Bd bd, bool verifierTransversaux)
 {
     if (rempli)
     {
         if (Contenu.Contains("."))
         {
             rempli = false;
             bd.MarquerMotUtilise(this.motDico, false);
             this.motDico = null;
         }
     }
     else
     {
         if (!Contenu.Contains("."))
         {
             rempli       = true;
             this.motDico = motDico;
             bd.MarquerMotUtilise(motDico, true);
         }
     }
     if (verifierTransversaux)
     {
         foreach (Lettre lettre in listeLettres)
         {
             lettre.MarquerMotRempliDansDirection(!horizontal, bd);
         }
     }
 }
Ejemplo n.º 3
0
    /// <summary>
    /// Retourne les définitions du mot courant
    /// </summary>
    /// <param name="bd"></param>
    /// <returns></returns>
    public string[] ObtenirDefinitions(Bd bd)
    {
        MotDico motDef = bd.RechercherMotParContenuPourDefinitions(this.Contenu);

        if (motDef != null && motDef.definitions.Length > 0)
        {
            return(motDef.definitions);
        }
        else
        {
            //Debug.Log("Le mot " + this.Contenu + " n'a pas été trouvé dans le dictionnaire de définitions.");
            return(new string[] { "Définition indéterminée" });
        }
    }
Ejemplo n.º 4
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);
         }
     }
 }
Ejemplo n.º 5
0
    /// <summary>
    /// Ajoute un dictionnaire à laliste des dictionnaires
    /// </summary>
    /// <param name="textAsset"></param>
    private void AjouterDico(TextAsset textAsset)
    {
        List <string>  strList = textAsset.text.Split(new string[] { "\r\n", "\n" }, System.StringSplitOptions.RemoveEmptyEntries).ToList();
        List <MotDico> lmd     = new List <MotDico>();

        foreach (string str in strList)
        {
            MotDico motDico = new MotDico();
            if (str.Contains(";"))
            {
                List <string> defList = str.Split(new string[] { ";" }, System.StringSplitOptions.RemoveEmptyEntries).ToList();
                motDico.contenu = defList[0];
                defList.RemoveAt(0);
                motDico.definitions = defList.ToArray();
            }
            else
            {
                motDico.contenu = str;
            }
            motDico.longueur = motDico.contenu.Length;
            lmd.Add(motDico);
        }
        listeDicos.Add(lmd);
    }
Ejemplo n.º 6
0
 /// <summary>
 /// Marque un mot comme utilisé
 /// </summary>
 /// <param name="motDico"></param>
 /// <param name="utilise"></param>
 public void MarquerMotUtilise(MotDico motDico, bool utilise)
 {
     listeDicos[motDico.longueur].Find(o => o == motDico).utilise = utilise;
 }