Beispiel #1
0
        public void Generar_RND(int Longitud)
        {/* Genera un Vector de Longitud igual al parametro, pero con valores al Azar*/
            this.Clear();
            Tiles T1 = Grilla.NuevoTile();

            T1.CR_RND();

            T1.Id = 1;
            this.AddTile(T1);

            for (int i = 2; i <= Longitud; i++)
            {
                if (this.HayLugarParaVecinosOrtogonales(T1))
                {
                    Random rand  = new Random();
                    int    i_rnd = rand.Next(0, 4);
                    if (i_rnd == 4)
                    {
                        i_rnd = 3;
                    }

                    Tiles Tv = T1.VecinoOrtogonal(i_rnd);

                    while ((Tv == null) || (this.ExisteTile(Tv)))
                    {
                        i_rnd = (i_rnd + 1) % 4;
                        Tv    = T1.VecinoOrtogonal(i_rnd);
                    }

                    Tv.Valor = RandomizeFHA.Next(1, 8);

                    Tv.Id = i;
                    this.AddTile(Tv);
                    T1 = Tv;
                }
                else
                {
                    break;
                }
            }
        }