Esempio n. 1
0
        private void _simulateOpponentMove(Points pts, ACar car)
        {
            if (car.OutOfMap)
            {
                return;
            }

            if (pts.Count == 0)
            {
                Log("need more points!");
                return;
            }
            var p = pts[0];

            if (car.GetDistanceTo2(p) < 500 * 500)
            {
                pts.RemoveAt(0);
                _simulateOpponentMove(pts, car);
                return;
            }
            var turn  = car.GetAngleTo(p);
            var power = 1.0;

            if (Math.Abs(turn) > 0.5)
            {
                power = 0.5;
            }
            if (Math.Abs(turn) > 1)
            {
                power = 0.3;
            }

            if (!ModelMove(car,
                           new AMove {
                EnginePower = power, IsBrake = false, WheelTurn = TurnRound(turn)
            },
                           simpleMode: true))
            {
                car.OutOfMap = true;
            }
        }
Esempio n. 2
0
        private void _simulateOpponentMove(Points pts, ACar car)
        {
            if (car.OutOfMap)
                return;

            if (pts.Count == 0)
            {
                Log("need more points!");
                return;
            }
            var p = pts[0];
            if (car.GetDistanceTo2(p) < 500 * 500)
            {
                pts.RemoveAt(0);
                _simulateOpponentMove(pts, car);
                return;
            }
            var turn = car.GetAngleTo(p);
            var power = 1.0;
            if (Math.Abs(turn) > 0.5)
                power = 0.5;
            if (Math.Abs(turn) > 1)
                power = 0.3;

            if (!ModelMove(car,
                new AMove {EnginePower = power, IsBrake = false, WheelTurn = TurnRound(turn)},
                simpleMode: true))
            {
                car.OutOfMap = true;
            }
        }