private void ExecuteAction(Action nextAction) { long sss = StaticData.UpdatesSoFar; UpdateActionsIds.Add(new UpdateActionPair(StaticData.UpdatesSoFar, nextAction)); Actions.Add(nextAction); Simulator.ActionsFrequency = GenSimAgent.GetActionsFrequency(nextAction); Simulator.RunEngine(new ActionsGenerator(nextAction)); }
public static List <ActionTimePair> ConvertTLEventstoActionTimePair(List <TLEvent> events) { List <ActionTimePair> res = new List <ActionTimePair>(); int tsNow = 15 * 60 + GenSimAgent.VoidInitCount * GenSimAgent.GetActionsFrequency(new VoidAction()); foreach (TLEvent tlEvent in events) { res.Add(new ActionTimePair(tlEvent.eType, tsNow)); tsNow += (int)((tlEvent.TTN / (float)1000) * 60); } return(res); }
public static List <CATimePair> ConvertTLEventstoCATimePair(List <TLEvent> events) { List <CATimePair> res = new List <CATimePair>(); int tsNow = 15 * 60 + GenSimAgent.VoidInitCount * GenSimAgent.GetActionsFrequency(new VoidAction()); foreach (TLEvent tlEvent in events) { if (tlEvent.eType == EventType.RopeCut || tlEvent.eType == EventType.RocketPress || tlEvent.eType == EventType.BumperInteraction || tlEvent.eType == EventType.BlowerPress || tlEvent.eType == EventType.BubblePinch) { res.Add(new ActionTimePair(tlEvent.eType, tsNow)); } else { res.Add(new CompTimePair(GetCompType(tlEvent.eType), tsNow) { Args = tlEvent.Args }); } tsNow += (int)((tlEvent.TTN / (float)1000) * 60); } return(res); }
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++; } } }