static void Main(string[] args)
        {
            MyConsole.WriteLine("Hello World");

            const int threadCount = 4;
            const int width = 1000;
            const int height = 1000;
            const int moleculaCount = 10000;
            var time = TimeSpan.FromSeconds(0.01);

            var random = new Random();
            var forceCalculatingService = new ForceCalculatingService();
            var moleculasUpdatingService = new MoleculasUpdatingService();
            var factory = new ForceStategyFactory();

            var moleculasA = new Molecula[moleculaCount];
            var moleculasB = new Molecula[moleculaCount];
            for (int i = 0; i < moleculaCount; i++)
            {
                int x = random.Next(width);
                int y = random.Next(height);

                var moleculaA = new Molecula(null);
                var moleculaB = new Molecula(null);
                moleculaA.Position = new Vector2(x, y);
                moleculaB.Position = new Vector2(x, y);
                moleculasA[i] = moleculaA;
                moleculasB[i] = moleculaB;
            }

            var strategies = new BaseForceStrategy[]
            {
                factory.GetBasicForceStrategy(moleculasA, forceCalculatingService, moleculasUpdatingService),
                factory.GetParallelForceStratagy(moleculasB, forceCalculatingService, moleculasUpdatingService,
                    threadCount)
            };

            foreach (var strategy in strategies)
            {
                strategy.Time = time;
                strategy.Height = height;
                strategy.Width = width;
            }

            do
            {
                var benchmark = new Benchmark<object>(strategies);
                if (!benchmark.StartBenchmark().IsBechmarkSuccessful)
                {
                    break;
                }

                MyConsole.WriteLine();

            } while (true);

            MyConsole.WriteLine("Tests finished!! Press enter");

            MyConsole.ReadLine();
        }
 public Game()
 {
     _random = new Random();
     _forceStategyFactory = new ForceStategyFactory();
     _forceCalculatingService = new ForceCalculatingService();
     _moleculasUpdatingService = new MoleculasUpdatingService();
     Moleculas = new List<Molecula>();
     StrategyType = StrategyType.Basic;
 }