Ejemplo n.º 1
0
        static void Main2(string[] args)
        {
            string s  = Engager.RegexHelper.ExpandCharClass(@"[\-a-zA-F1 5-9]");
            string s2 = Engager.RegexHelper.ExpandCharClass(@"^[\w\-\.]*[\w\.]\@[\w\.]*[\w\-\.]+[\w\-]+[\w]\.+[\w]+[\w $]");

            //s = Engager.RegexHelper.ExpandCharClass(@"[10-900]{3}");


            Engager.Engager e = new Engager.Engager();

            Engager.Gear <int> g1 = new Engager.Gear <int>();
            g1.AddCog(0);
            g1.AddCog(1);
            g1.AddCog(2);
            g1.AddCog(3);
            g1.AddCog(4);
            g1.AddCog(5);
            g1.AddCog(6);
            g1.AddCog(7);
            g1.AddCog(8);


            Engager.Gear <int> g2 = new Engager.Gear <int>();
            g2.AddCog(0);
            g2.AddCog(1);
            g2.AddCog(2);
            g2.AddCog(3);
            g2.AddCog(4);
            g2.AddCog(5);
            g2.AddCog(6);
            g2.AddCog(7);
            g2.AddCog(8);

            e.Add(g1);
            e.Add(g1.Clone());
            e.Add(g1.Clone());
            e.Add(g1.Clone());
            e.Completed += delegate(Engager.Engager engager)
            {
                //engager.Reset();
            };

            //while (e.Current != null)
            //{
            //    Console.WriteLine("--> {0}, {1}, {2}", e.Current[0], e.Current[1], (int)e.Current[1] + (int)e.Current[0]);
            //    e.Turn();
            //}

            //var rets = e.Where(a => (int)a[0] + (int)a[1] == 8);
            var rets = from a in e
                       //where (int)a[0] + (int)a[1] == 8
                       where a.Sum(aa => (int)aa) == 8 &&
                       a.All(aa2 => ((int)aa2) <= 3) &&
                       a.All(aa2 => ((int)aa2) > 0)
                       select a;

            rets = from a2 in rets
                   select a2.OrderByDescending(aa => (int)aa).ToArray();

            rets = from a3 in rets
                   orderby(int) a3[0] descending, (int)a3[1] descending, (int)a3[2], (int)a3[3] descending
            select a3;

            foreach (var ret in rets)
            {
                Console.Write("--> ");
                foreach (object retN in ret)
                {
                    Console.Write("-[{0},{1}]-", retN, valore((int)retN));
                }
                Console.Write(" costa {0}", ret.Sum(aa => valore((int)aa)));
                Console.WriteLine("");
            }
        }