Esempio n. 1
0
        private static void Main(string[] args)
        {
            Thread.CurrentThread.CurrentCulture = new CultureInfo("EN-US");
            LoggerFactory.SetLogLevel(LogLevel.Off);

            var description = new ModelDescription();

            description.AddLayer <CarLayer>();
            description.AddLayer <CarParkingLayer>();
            description.AddLayer <TrafficLightLayer>();
            description.AddLayer <TravelerLayer>();


            description.AddAgent <Traveler, TravelerLayer>();
            description.AddEntity <Car>();


            ISimulationContainer application;

            if (args != null && args.Any())
            {
                application = SimulationStarter.BuildApplication(description, args);
            }
            else
            {
                var config = CreateDefaultConfig();
                application = SimulationStarter.BuildApplication(description, config);
            }

            var simulation = application.Resolve <ISimulation>();

            var watch = Stopwatch.StartNew();
            var state = simulation.StartSimulation();

            var layers = state.Model.Layers;


            foreach (var layer in layers)
            {
                if (layer.Value is TravelerLayer travelerLayer)
                {
                    TripsOutputAdapter.PrintTripResult(travelerLayer.Travelers.Values);
                }
            }

            watch.Stop();

            Console.WriteLine($"Executed iterations {state.Iterations} lasted {watch.Elapsed}");
            application.Dispose();
        }