Ejemplo n.º 1
0
        private void recalculatingPersuersDirections()
        {
            List <double> Times = new List <double>(); // времена до поимки, если по одиночке

            // Пересчет управления преследователей
            for (int i = 0; i < game.pursuers.Count; i++)
            {
                var evaderX  = game.evader.v.X;
                var evaderY  = game.evader.v.Y;
                var persuerX = game.pursuers[i].Z.X;
                var persuerY = game.pursuers[i].Z.Y;

                var lambda = game.Calc_lambda(evaderX, evaderY, persuerX, persuerY, game.time, game.A, game.U, game.pursuers[i].capture);

                game.pursuers[i].setl(lambda);
                game.pursuers[i].Calc_TimeBeforeCapture(game.evader.coordinates.X, game.evader.coordinates.Y);

                if (game.pursuers[i].TimeBeforeCapture > 0)
                {
                    Times.Add(game.pursuers[i].TimeBeforeCapture);
                }
            }
            Pursuer.Calc_TimeBeforeSynchronousCapture(Times, game.M);
            for (int i = 0; i < game.pursuers.Count; i++)
            {
                game.pursuers[i].Calc_u1_u2(game.evader.v.X, game.evader.v.Y, game.A, game.U, game);
            }
        }