private static void ExecTestGenBySim(string[] args)
        {
            //// GENERATION - JAVA
            if (false)
            {
                args    = new string[3];
                args[1] =
                    //"frog(400, 400) cookie(100, 100) rope(200, 200, 150) rope(340, 200, 200) bubble(250, 340) blower(200, 220, 0)";
                    //"blower_press( 1600 ) rope_cut( 500 ) rocket_press( 2000 ) omnom_feed(1000)";
                    //"rope_cut( 1600 ) rope_cut( 1400 ) bubble_press( 3000 ) rocket_press( 2100 )  omnom_feed(0) ";
                    //"blower_press( 2000 ) rope_cut( 800 ) rope_cut( 600 ) bubble_press( 2000 ) blower_press( 400 ) bumper_interaction( 1500 ) omnom_feed(0) ";
                    //"blower_press( 1600 ) rope_cut( 400 ) rocket_press( 700 ) bumper_interaction( 1500 ) blower_press( 200 ) omnom_feed(0) ";
                    //"rope_cut( 1000 )  omnom_feed(0) ";
                    //"blower(100, 0 ) blower_press( 1000 ) rope( 440 , 240 , 250 ) rope_cut( 1000 ) omnom_feed(0) ";
                    //"rope(380,140,160)rope_cut(1400)omnom_feed(0)";
                    //"rope( 540 , 40 , 130 ) rope_cut( 1200 ) omnom_feed(0)";
                    //"rope(240,220,130)rope_cut(800)rope(220,240,250)rope_cut(1200)rope(400,220,190)rope_cut(1800)omnom_feed(0)";
                    //"blower(100,4)blower_press(500)rope(400,240,160)rope_cut(200)rocket(1500,3)rocket_press(1800)omnom_feed(0)";
                    //"blower(100, 0 ) blower_press( 2000 ) rope( 400 , 160 , 130 ) rope_cut( 200 ) rope( 280 , 60 , 250 ) rope_cut( 400 ) rocket( 1000 , 1 ) rocket_press( 1000 ) omnom_feed(0) ";
                    //"blower(100,4)blower_press(1000)rope(320,240,100)rope_cut(400)rocket(1000,2)rocket_press(1600)blower(100,4)blower_press(1000)omnom_feed(0)";
                    //"blower(100, 0 ) blower_press( 1000 ) rope( 520 , 60 , 220 ) rope_cut( 200 ) rope( 220 , 220 , 130 ) rope_cut( 600 ) blower(100, 4 ) blower_press( 500 ) bumper(100, 1 ) bumper_interaction( 2000 ) omnom_feed(0) ";
                    //"rope( 260 , 100 , 100 ) rope_cut( 200 ) bumper(100, 1 ) bumper_interaction( 1000 ) bumper(100, 3 ) bumper_interaction( 1000 ) blower(100, 0 ) blower_press( 500 ) rocket( 500 , 2 ) rocket_press( 1200 ) omnom_feed(0) ";
                    //"blower(100, 0 ) blower_press( 2000 ) rope(100, 440 , 80 , 190 ) rope_cut( 200 ) rope(100, 200 , 60 , 160 ) rope_cut( 1600 ) rope( 100, 280 , 220 , 130 ) rope_cut( 400 ) rocket( 1500 , 5 ) rocket_press( 200 ) omnom_feed(0) ";
                    //"blower(100, 0 ) blower_press( 500 ) rope(100, 220 , 120 , 220 ) rope_cut( 600 ) rope(100, 300 , 200 , 220 ) rope_cut( 400 ) blower(100, 0 ) blower_press( 500 ) rocket( 500 , 6 ) rocket_press( 1600 ) omnom_feed(0) ";
                    //"blower(100, 4 ) blower_press( 2000 ) rope(100, 320 , 200 , 100 ) rope_cut( 200 ) rope(100, 520 , 140 , 220 ) rope_cut( 600 ) blower(100, 0 ) blower_press( 500 ) bumper(100, 0 ) bumper_interaction( 2000 ) omnom_feed(0) ";
                    //"blower(100,0)blower_press(500)blower(100,4)blower_press(500)rope(100,340,140,130)rope_cut(200)rocket(500,7)rocket_press(1400)bubble(1800)bubble_press(1000)omnom_feed(0)";
                    //"rope(100, 280 , 80 , 220 ) rope_cut( 600 ) rope(100, 540 , 220 , 220 ) rope_cut( 400 ) rope(100, 500 , 120 , 100 ) rope_cut( 200 ) rope(100, 360 , 60 , 130 ) rope_cut( 400 ) blower(100, 0 ) blower_press( 1500 ) bumper(100, 3 ) bumper_interaction( 1000 ) bubble( 600 ) bubble_press( 2000 ) omnom_feed(0) ";
                    //"rope(100,220,120,130)rope_cut(600)rope(100,260,240,100)rope_cut(400)rope(100,540,220,160)rope_cut(600)bumper(100,0)bumper_interaction(1000)blower(100,4)blower_press(500)bubble(1600)bubble_press(2000)omnom_feed(0)";
                    //"rope(100,220,120,130)rope_cut(600)omnom_feed(0)";
                    //"rope(100,220,120,130)rope_cut(600)bumper(100,0)bumper_interaction(1000)blower(100,4)blower_press(500)bubble(1600)bubble_press(2000)omnom_feed(0)";
                    //"rope(100, 220 , 180 , 220 ) rope_cut( 200 ) rope(100, 520 , 80 , 100 ) rope_cut( 200 ) bubble( 600 ) bubble_press( 500 ) rocket( 2000 , 3 ) rocket_press( 1200 ) bubble( 600 ) bubble_press( 1500 ) omnom_feed(0) ";
                    //"blower(100,0)blower_press(1500)rope(100,240,100,160)rope_cut(200)bumper(100,3)bumper_interaction(700)bubble(400)bubble_press(500)rocket(500,2)rocket_press(1800)omnom_feed(0)";
                    //"rope(100,480,220,190)rope_cut(600)rope(100,280,140,250)rope_cut(200)rope(100,320,120,130)rope_cut(200)rocket(2000,4)rocket_press(1200)bumper(100,3)bumper_interaction(2000)omnom_feed(0)";
                    //"blower(100, 0 ) blower_press( 500 ) rope(100, 520 , 40 , 160 ) rope_cut( 1000 ) rope(100, 420 , 80 , 100 ) rope_cut( 800 ) rope(100, 500 , 120 , 220 ) rope_cut( 400 ) rope(100, 340 , 100 , 100 ) rope_cut( 400 ) blower(100, 0 ) blower_press( 1000 ) rocket( 500 , 4 ) rocket_press( 800 ) rocket( 500 , 0 ) rocket_press( 200 ) omnom_feed(0) ";
                    "rope_cut(200)rope_cut(500)blower_press(1500)rocket_press(1500)omnom_feed(0)";

                //string str =
                //                                            @"
                //                                            rope_cut(914)
                //
                //                                            blower_press(354)
                //                                            blower_press(352)
                //                                            rope_cut(1131)
                //
                //                                            bubble_press(359)
                //                                            bumper_interaction(348)
                //                                            bumper_interaction(1157)
                //
                //                                            bumper_interaction(346)
                //                                            bumper_interaction(340)
                //                                            omnom_feed(0)
                //                                            ";

                //                @"
                //                        rope_cut(914)
                //                        rocket_press(1500)
                //                        rocket_press(500)
                //                        omnom_feed(0)
                //                        ";

                //var s = MPCGHelper.ConvertFileToTTN();
                args[2] = "1";
                //for (int i = 0; i < 10; i++)
                {
                    GenSimManager.TestGevaLevelCAAll(args, false, false);
                }
                //GenSimManager.TestGevaLevelCAAll(args, false, false);

                //GenSimManager.TestGevaLevelCAAll(args, false, false);
                //GenSimManager.GenerateGevaLevel(args, true, false, false);
            }
            else
            {
                //GenSimManager.GenerateGevaLevel(args, false, true, true);
            }
        }
        public void ScatterComps()
        {
            bool succeeded = false;
            int  attempts  = 0;

            if (_atPairs == null)
            {
                GenSimAgent agent = new GenSimAgent(_catPairs, _isDirRandomized, _isRopesRandomized);
                agent.IsTesting = _isTestingOn;
                agent.Shotter   = _isTestingOn ? new EngineShotsManager() : null;
                bool succeed = agent.ExecuteScatter();
                WAgent = agent;
            }
            else
            {
                while (attempts < MAXTRY && !succeeded)
                {
                    //for (int i = 0; i < 3; i++)
                    //{
                    //Thread t = new Thread(new ThreadStart(() =>
                    //{
                    GenSimAgent agent = _atPairs != null
                                            ? new GenSimAgent(_atPairs)
                                            : new GenSimAgent(_catPairs, _isDirRandomized, _isRopesRandomized);
                    agent.IsTesting = _isTestingOn;
                    agent.Shotter   = _isTestingOn ? new EngineShotsManager() : null;

                    agent.MAXTRY = MAXTRY;
                    if (agent.ExecuteScatter())
                    {
                        WAgent = agent;
                        WAgent.BestCTPPairs = WAgent.CATPairs;
                        succeeded           = true;
                    }
                    else
                    {
                        var fit = GenSimManager.GetFitness(agent);
                        if (fit < bestFitSoFar)
                        {
                            WAgent       = agent;
                            bestFitSoFar = fit;
                        }
                    }
                    //}
                    //));
                    //_cThreads.Add(t);
                    //t.Start();
                    //}
                    //while (true)
                    //{
                    //    foreach (Thread thread in _cThreads)
                    //    {
                    //        if (!thread.IsAlive)
                    //        {
                    //            _cThreads.Remove(thread);
                    //        }
                    //    }
                    //    if (_cThreads.Count != 0)
                    //    {
                    //        // wait
                    //        Thread.Sleep(100);
                    //    }
                    //    else
                    //    {
                    //        break;
                    //    }
                    //}
                    //attempts += 3;
                    attempts++;
                }
            }
        }