private void cargarDiccionarioDeLetras()
 {
     if (letras == null)
     {
         letras = new Dictionary <char, Letra>();
     }
     if (letras.Count < Enum.GetNames(typeof(NombreLetra)).Length)
     {
         foreach (string a in Enum.GetNames(typeof(NombreLetra)))
         {
             if (!letras.ContainsKey(a[0]))
             {
                 Letra l = null;
                 try
                 {
                     Assembly ase = typeof(Letra).Assembly;
                     l = (Letra)ase.CreateInstance($"LetrasPOO.{a}");
                 }
                 finally
                 {
                     if (l != null)
                     {
                         letras.Add(a[0], l);
                     }
                 }
             }
             WriteLine(a);
         }
     }
 }
        public override void InicializarDiccionarioDeClases()
        {
            Type            claseLetra;
            ConstructorInfo constructor;
            Letra           objetoLetra = null;

            foreach (LetrasPermitidas c in Enum.GetValues(typeof(LetrasPermitidas)))
            {
                try
                {
                    claseLetra  = Type.GetType("LetrasPOO.Letra" + c);
                    constructor = claseLetra.GetConstructor(new Type[0]);
                    objetoLetra = (Letra)constructor.Invoke(new object[0]);
                }
                catch
                {
                }
                finally
                {
                    if (objetoLetra != null)
                    {
                        diccLetras.Add(c, objetoLetra);
                    }
                }
                Console.Write("{0} a�adida. ", c);
            }
            Console.WriteLine("");
            Console.WriteLine("Las letras disponibles son:");
            foreach (LetrasPermitidas c in Enum.GetValues(typeof(LetrasPermitidas)))
            {
                diccLetras.GetValueOrDefault(c).test();
            }
        }
示例#3
0
 public void juntarletras(Letra letra)
 {
     this.Nombre += letra.Nombre;
     for (int i = 0; i < limite; i++)
     {
         Matriz[i] += letra.Matriz[i] + " ";
     }
 }
 public override void PintarLetra(char letra)
 {
     if (letras.ContainsKey(letra))
     {
         Letra l = Letras[letra];
         for (int i = 0; i < SIETE; i++)
         {
             for (int j = 0; j < SIETE; j++)
             {
                 Write(l.MatrizLetra[i, j]);
             }
             WriteLine();
         }
     }
     else
     {
         WriteLine($"Letra:{letra} - No implementada aún");
     }
 }
 public override void PintarFrasePorPalabra(string frase)
 {
     frase = frase.ToUpper();
     for (sbyte lineas = 0; lineas < SIETE; lineas++) //Itera por lineas
     {                                                //Por cada linea itera por palabras
         for (sbyte letraPorPalabra = 0; letraPorPalabra < (sbyte)frase.Length; letraPorPalabra++)
         {
             for (sbyte columna = 0; columna < SIETE; columna++)
             {
                 if (letras.ContainsKey(frase[letraPorPalabra]))
                 {
                     Letra l = Letras[frase[letraPorPalabra]];
                     Write(l.MatrizLetra[lineas, columna]);
                 }
                 else
                 {
                     Write(Blanco); // los espacios o aquellas letras que aún no estan implementadas
                 }
             }
             Write(Blanco);         // espacio entre letras
         }
         WriteLine();               // salto de linea
     }
 }