Beispiel #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Please Enter System Depth:");

            string      input   = Console.ReadLine();
            TreeFactory factory = new TreeFactory();
            int         val     = 0;

            int.TryParse(input, out val);
            if (val == 0)
            {
                Console.WriteLine("Depth must be greater than Zero");
            }
            if (val > 21)
            {
                Console.WriteLine("Depth must be less than 21 ");
            }
            else
            {
                TreeSystem system = factory.Create(val);
                GateRunner runner = new GateRunner();

                // Enable This part to Print tree
                //var v = new TextVisualizer();
                //system.Visualize(v);

                Console.WriteLine($"Answer (Running System) : {runner.RunSystem(system)}");
                Console.WriteLine($"Answer (Prediction) : {runner.Predict(system)}");
            }
        }
Beispiel #2
0
        public int RunSystem(TreeSystem system)
        {
            int numberOfBalles = system.Containers.Count - 1;

            Parallel.For(0, numberOfBalles, (int ball) =>
            {
                system.RunBall();
            });
            return(system.Containers.Find(c => c.HasBall == false).ContainerNumber);
        }
Beispiel #3
0
        public TreeSystem Create(int depth)
        {
            Depth = depth;
            Gate root = new Gate();

            AssginNode(root, 2);
            var tree = new TreeSystem()
            {
                Tree = root
            };

            tree.Containers.AddRange(Containers);
            return(tree);
        }
Beispiel #4
0
 public int Predict(TreeSystem system)
 {
     return(system.Predict().ContainerNumber);
 }