public static Turn ControlRocket(Rocket rocket, Vector target)
 {
     return((target - rocket.Location).Angle -
            (rocket.Location + rocket.Velocity + ForcesTask.GetThrustForce(10)(rocket) -
             rocket.Location).Angle > 0
             ? Turn.Right
             : Turn.Left);
 }
Beispiel #2
0
        public static Turn ControlRocket(Rocket rocket, Vector target)
        {
            var rocketForce    = ForcesTask.GetThrustForce(5)(rocket);
            var vectorToTarget = rocket.Location + rocket.Velocity + rocketForce;
            var totalAngle     = (target - rocket.Location).Angle - (vectorToTarget - rocket.Location).Angle;

            if (totalAngle < 0)
            {
                return(Turn.Left);
            }
            if (totalAngle > 0)
            {
                return(Turn.Right);
            }
            return(Turn.None);
        }